從零開始學(xué)ASP.NET(基礎(chǔ)篇)8

2010-08-28 10:48:27來源:西部e網(wǎng)作者:

第八天

學(xué)習(xí)目的
   

學(xué)會SQL中的占位符用法

在鯨魚這幾天忙死了,好幾天沒寫了,真對不起各位。這幾天讓XHTML鬧得不開心,雖然以前也知道這個,但沒太在意?涩F(xiàn)在我是如夢初醒,我發(fā)覺XHTML是個信號,所以這幾天不得不仔細研究一下這個。很笨,我還沒發(fā)覺XHTML的奧妙。確實如此,沒上過臺面,真不知這桌菜怎樣好吃。少說了,回到正題。

先把以前的Command的CommandText重新寫過:
cmd.CommandText = "INSERT INTO NewsArticle (title, Subtitle, Writer, Content)"
                           + " valueS ( @title, @Subtitle, @Writer, @Content )";
這樣代碼是否很清晰了,我們可以避免一大串的難以看懂的的語句了。

接下來,我們就給這些定位符賦予屬性和值了:
cmd.Parameters.Add("@title", SqlDbType.NVarChar, 50);
cmd.Parameters.Add("@Subtitle", SqlDbType.NVarChar, 50);
cmd.Parameters.Add("@Writer", SqlDbType.NVarChar, 10);
cmd.Parameters.Add("@Content", SqlDbType.NText);

以上我們給每個占位符定義一個值類型,相信不難看懂吧。接者再給于值:
cmd.Parameters["@title"].value = txttitle.Text.Trim();
if (txtSubtitle.Text == string.Empty || txtSubtitle.Text.Trim() == "")
{
   cmd.Parameters["@Subtitle"].value = DBNull.value;
}
else
{
   cmd.Parameters["@Subtitle"].value = txtSubtitle.Text.Trim();
}
if (txtWriter.Text == string.Empty || txtWriter.Text.Trim() == "")
{
   cmd.Parameters["@Writer"].value = DBNull.value;
}
else
{
   cmd.Parameters["@Writer"].value = txtWriter.Text;
}
cmd.Parameters["@Content"].value = txtContent.Text;

其實,也可以這樣寫:
cmd.Parameters.Add("@title", SqlDbType.NVarChar, 50) .value = txttitle.Text.Trim();
這要看你喜歡了。

不錯吧,程序是否很有條理。

程序代碼:
       private void btnPublish_ServerClick(object sender, System.EventArgs e)
       {
           string strConnection = ConfigurationSettings.AppSettings["SqlDatabase1"];

           // 連接SqlServer數(shù)據(jù)庫
           SqlConnection conn = new SqlConnection(strConnection);
           // 建立SqlCommand
           SqlCommand cmd = conn.CreateCommand();
           cmd.CommandText = "INSERT INTO NewsArticle (title, Subtitle, Writer, Content)"
                                           + " valueS ( @title, @Subtitle, @Writer, @Content )";
           conn.Open();

           cmd.Parameters.Add("@title", SqlDbType.NVarChar, 50);
           cmd.Parameters.Add("@Subtitle", SqlDbType.NVarChar, 50);
           cmd.Parameters.Add("@Writer", SqlDbType.NVarChar, 10);
           cmd.Parameters.Add("@Content", SqlDbType.NText);

           cmd.Parameters["@title"].value = txttitle.Text.Trim();
           if (txtSubtitle.Text == string.Empty || txtSubtitle.Text.Trim() == "")
           {
               cmd.Parameters["@Subtitle"].value = DBNull.value;
           }
           else
           {
               cmd.Parameters["@Subtitle"].value = txtSubtitle.Text.Trim();
           }
           if (txtWriter.Text == string.Empty || txtWriter.Text.Trim() == "")
           {
               cmd.Parameters["@Writer"].value = DBNull.value;
           }
           else
           {
               cmd.Parameters["@Writer"].value = txtWriter.Text;
           }
           cmd.Parameters["@Content"].value = txtContent.Text;
           // 插入記錄
           try
           {
               cmd.ExecuteNonQuery();
           }
           catch (Exception ex)
           {
               Response.Write("<script language=javascript>alert("輸入錯誤,數(shù)據(jù)庫不能更新。")</script>");
           }
           finally
           {
               conn.Close();
           }
       }
關(guān)鍵詞:ASP.NET

贊助商鏈接: