C#中添加数据到数据库

1.利用SQL语句添加 

在SQL语句中提供了INSERT语句进行数据添加,其语法格式如下。
INSERT [Into] table_name[(column_list)] values (data_values)
说明:INSERT 是关健字,
 Into 是可选项,
 table_name 为表名,即向哪个表中插入数据
 column_list 为表中列名,如果为多列,则列名间用逗号隔开,省略该参数,即向表中所有列插入数据。
 data_values 为向表中插入的数据。

利用SQL语句向数据库添加记录时
首先要创建SqlConnection类的一个对象,用来连接数据库,
然后定义添加的SQL字符串,
最后使用SqlCommand对象的ExecuteNonQuery方法执行记录的添加操作。

例1:通过在指定的文本框中输入所要添加的用户信息,单击【添加】按钮,通过在按钮的Click事件中利用SQL语句来实现添加过程,添加的信息将显示在GridView控件中。
程序开发步骤:
   (1)新建一个网站,将其命名为Ex19_01,默认主页为Default.aspx。
   (2)向Default.aspx页中添加一个Table表格,用于布局页面,然后在Table表格中分别添加一个GridView控件、3个TextBox控件和一个Button控件,用来显示添加的结果、输入添加信息和执行添加命令。
   (3)主要程序代码。

   首先,在Page_Load事件中调用自定义的绑定方法。
  protected void Page_Load(object sender, EventArgs e) 
    { 
		if (IsPostBack) 
		{ 
			GridViewBind(); 
		} 
    }	 

自定义绑定方法GridViewBind()代码如下。

public void GridViewBind() 
    { 
         SqlConnection con = new SqlConnection("Server=(Local);Uid=sa;pwd=;DataBase=fangdawei"); 
         con.Open(); 
         SqlDataAdapter ada = new SqlDataAdapter("select * from tb_Member", con); 
         DataSet ds = new DataSet(); 
         ada.Fill(ds); 
         GridView1.DataSource = ds; 
         GridView1.DataBind(); 
         con.Close(); 
    }

 自定义一个getConut()方法,此方法将用来判断是否有添加了相同的记录,代码如下。

public int getConut()
{
SqlConnection con = new SqlConnection("Data Source=(local);Database=fangdawei;Uid=sa;Pwd=;");
con.Open();
string str = "select * from tb_Member where name='" + TextBox1.Text + "'and sex='" + TextBox2.Text + "'and nPlace='" + TextBox3.Text + "'";
SqlCommand com = new SqlCommand(str, con);
int intcont = Convert.ToInt32(com.ExecuteScalar());
con.Close();
com.Clone();
return intcont;
}
"添加"按钮Click事件代码如下。

   protected void Button1_Click(object sender, EventArgs e)
    {
        if (getConut() != 0)//判断是否添加了相同的记录
        {
            Response.Write("alert('对不起!不允许填写相同记录!')");
        }
        else
        {
            try
            {
                 SqlConnection sqlcon = newSqlConnection("Data Source=(local);Database=fangdawei;Uid=sa;Pwd=;");
                 sqlcon.Open();
                 string InsertSql ="insert into tb_Member(name,sex,nPlace) values ('" + TextBox1.Text +"','" + TextBox2.Text + "','" + TextBox3.Text +"')";
                 SqlCommand com = newSqlCommand(InsertSql, sqlcon);
                 com.ExecuteNonQuery();
                 SqlDataAdapter ada = newSqlDataAdapter("select * from tb_Member", sqlcon);
                 DataSet ds = new DataSet();
                 ada.Fill(ds, "tb_Member");
                 GridView1.DataSource = ds;
                 GridView1.DataBind();
                 sqlcon.Close();
                 Response.Write("alert('添加成功!')");
            }
            catch(Exception ex)
            {
                Response.Write("ex.Message.ToString()");
            }
        }
     }

2.通过SqlParameter参数添加 
   通过SqlParameter参数向数据库添加数据,主要使用SqlParameter类的一些属性和方法。
   操作流程:
首先要创建SqlConnection类的一个对象,用来连接数据库,
然后插入一个带参数的SQL命令。
通过SqlCommand对象的Add方法向SqlParameter中添加参数
给相应的参数赋值
使用SqlCommand对象的ExecuteNonQuery方法执行记录的添加操作

    例如,使用的带参数的SQL命令实现向数据库的图书信息表(“tb_BookInfo”表)中添加相关的图书信息,代码如下。
    insert into tb_BookInfo (BookName,BookIntroduce,BookPrice,BookIsNew) values(@BookName,@BookIntroduce,@BookPrice,@BookIsNew) 
插入完带参数的SQL命令后,通过SqlCommand对象的Add方法向SqlParameter中添加参数,并给相应的参数赋值,最后使用SqlCommand对象的ExecuteNonQuery方法执行记录的添加操作。


说明:在使用带参数的SQL命令(如insert、update和delete等命令)时,其中的参数必须要用标识符@来标记,而参数名称可自己定义。在这种情况下,参数与命令关联的顺序就不重要了。
    注意:OLEDB和ODBC数据源使用以问号(?)占位符标识的定位参数。参数的顺序是重要的。这一点与SQL Server是不同的,要牢记!


例2:通过在页面指定的文本框中输入要添加的相关信息,通过在【添加】按钮的Click事件中使用SqlParameter参数来实现添加操作,添加的信息将显示在GridView控件中。
    程序开发步骤:
   (1)新建一个网站,将其命名为Ex19_02,默认主页为Default.aspx。
   (2)向Default.aspx页中添加一个Table表格,用于布局页面,然后在Table表格中分别添加一个GridView控件、4个TextBox控件和一个Button控件,用来显示添加的结果、输入添加信息和执行添加命令。
   (3)主要程序代码。
   
   “添加信息”按钮Click事件代码如下:
    protected void Button1_Click(object sender, EventArgs e) 
    { 
         SqlConnection con = new SqlConnection("Data Source=(local);Database=fangdawei;Uid=sa;Pwd=;"); 
         con.Open(); 
         string str = "select count(*) from tb_BookInfo where BookName='" + TextBox1.Text.ToString() + "'"; 
         SqlCommand com = new SqlCommand(str, con); 
         int intcont = Convert.ToInt32(com.ExecuteScalar()); 
         if (intcont > 0)//判断数据库中是否有相同的录 
        {    
             Response.Write("alert('对不起!不允许填写相同记录!')"); 
        } 
        else 
        { 
            try 
            { 
				 //插入命令 
				 string sqlstr = "insert into tb_BookInfo (BookName,BookIntroduce,BookPrice,BookIsNew) values(@BookName,@BookIntroduce,@Bo                                                   okPrice,@BookIsNew)"; 
				 SqlCommand mycom = new SqlCommand(sqlstr, con); 
				 //添加参数 
				 mycom.Parameters.Add(new SqlParameter("@BookName", SqlDbType.VarChar,50)); 
				 mycom.Parameters.Add(new SqlParameter("@BookIntroduce", SqlDbType.VarChar,50)); 
				 mycom.Parameters.Add(new SqlParameter("@BookPrice", SqlDbType.Money,8)); 
				 mycom.Parameters.Add(new SqlParameter("@BookIsNew", SqlDbType.Char,10)); 
				 //给参数赋值 
				 mycom.Parameters["@BookName"].Value = TextBox1.Text; 
				 mycom.Parameters["@BookIntroduce"].Value = TextBox2.Text; 
				 mycom.Parameters["@BookPrice"].Value = Convert.ToDecimal(TextBox3.Text); 
				 mycom.Parameters["@BookIsNew"].Value = DropDownList1.SelectedValue.ToString(); 
				 //执行添加语句 
				 mycom.ExecuteNonQuery(); 
				 con.Close(); 
				 BindData(); 
				 Response.Write("alert('添加成功!')"); 
            } 
            catch(Exception ex) 
            { 
                Response.Write(ex.Messgae.ToString()); 
            } 
		}   
	}
3、通过存储过程添加                                 
存储过程可以过滤SQL语句中的非法字符,而且在创建时可直接在服务器上进行编译,所以执行起来比单个SQL语句快。通过存储过程添加数据,可以提高程序的执行效率,而且便于以后的维护。
利用存储过程向数据库添加记录时,
首先要创建SqlConnection类的一个对象,用来连接数据库,
然后使用SqlCommand对象的CommandType属性指定要执行的SQL文本命令为存储过程,
并通过Add方法向SqlParameter中添加参数,
最后使用SqlCommand对象的ExecuteNonQuery方法执行数据更新操作。


例3:本例主要应用存储过程实现向图书信息数据库中添加数据,在页面指定的文本框中输入相关的添加信息,通过【添加】按钮的Click事件中调用存储过程来实现添加操作。
使用存储过程添加数据之前,首先需要创建存储过程probookinfo,代码如下:
	CREATE    PROCEDURE probookinfo 
	(	@BookName     [VarChar](50), 
		@BookIntroduce    [VarChar](50), 
		@BookPrice    [Money], 
		@BookIsNew   [VarChar](50)) 
	AS INSERT INTO [fangdawei].[dbo].[tb_BookInfo] ( 
		[BookName], 
		[BookIntroduce], 
		[BookPrice], 
		[BookIsNew]) 
	VALUES ( 
	   @BookName, 
	   @BookIntroduce, 
	   @BookPrice, 
	   @BookIsNew) 
	GO 
程序开发步骤:
   (1)新建一个网站,将其命名为Ex19_03,默认主页为Default.aspx。
   (2)向Default.aspx页中添加一个Table表格,用于布局页面,然后在Table表格中分别添加一个GridView控件、4个TextBox控件和一个Button控件,用来显示添加的结果、输入添加信息和执行添加命令。
   (3)主要程序代码。
   
“添加信息”按钮Click事件代码如下: 
	protected void Button1_Click(object sender, EventArgs e) 
       { 
         SqlConnection myconn = new SqlConnection("server=(local);Database=fangdawei;Uid=sa;Pwd="); 
         //打开链接 
         myconn.Open(); 
         string str = "select count(*) from tb_BookInfo where BookName='" + TextBox1.Text.ToString() + "'"; 
         //创建SqlCommand对象 
         SqlCommand com = new SqlCommand(str,myconn); 
         int intcont = Convert.ToInt32(com.ExecuteScalar()); 
         if (intcont > 0) 
        { 
             Response.Write("alert('对不起!不允许填写相同记录!')"); 
        } 
         else 
        { 
             try 
            { 
                 SqlCommand mycom = new SqlCommand("probookinfo", myconn); 
                 //调用存储过程 
                 mycom.CommandType = CommandType.StoredProcedure; 
                 //添加参数 
                 SqlParameter[] prams ={


                            new SqlParameter("@BookName", SqlDbType.VarChar, 50), 
                            new SqlParameter("@BookIntroduce", SqlDbType.VarChar, 50), 
                            new SqlParameter("@BookPrice", SqlDbType.Money, 8), 
                            new SqlParameter("@BookIsNew", SqlDbType.Char, 10), 
                                                       
                  }; 
                 //给参数赋值 
                 prams[0].Value = TextBox1.Text; 
                 prams[1].Value = TextBox2.Text; 
                 prams[2].Value = Convert.ToDecimal(TextBox3.Text); 
                 prams[3].Value = DropDownList1.SelectedValue.ToString(); 
                 foreach (SqlParameter parameter in prams) 
                 { 
                     mycom.Parameters.Add(parameter); 
                 } 
                 //执行sql语句 
                 mycom.ExecuteNonQuery(); 
                 myconn.Close(); 
                 BindData(); 
                 Response.Write("alert('添加成功!')"); 
            } 
             catch(Exception ex) 
            { 
                Response.Write(ex.Message.ToString()); 
            } 
        } 
    }
  • 5
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值