学习目的
    学会SQL中的占位符用法
在鲸鱼这几天忙死了,好几天没写了,真对不起各位。这几天让XHTML闹得不开心,虽然以前也知道这个,但没太在意。可现在我是如梦初醒,我发觉XHTML是个信号,所以这几天不得不仔细研究一下这个。很笨,我还没发觉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数据库
            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('输入错误,数据库不能更新。')</script>");
            }
            finally
            {
                conn.Close();
            }
        }
    学会SQL中的占位符用法
在鲸鱼这几天忙死了,好几天没写了,真对不起各位。这几天让XHTML闹得不开心,虽然以前也知道这个,但没太在意。可现在我是如梦初醒,我发觉XHTML是个信号,所以这几天不得不仔细研究一下这个。很笨,我还没发觉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数据库
            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('输入错误,数据库不能更新。')</script>");
            }
            finally
            {
                conn.Close();
            }
        }
本文转自左洸博客园博客,原文链接:http://www.cnblogs.com/myqiao/articles/233180.html,如需转载请自行联系原作者