问题描述
第1种!!privatevoidForm1_Load(objectsender,System.EventArgse){objSqlConnection=newSqlConnection("Server=127.0.0.1;Database=jinxubin;uid=sa;pwd=123");objSqlDataAdapter=newSqlDataAdapter("select*frombook",objSqlConnection);objSqlDataAdapter.Fill(objDataSet,"book");dbgPass.DataSource=objDataSet.Tables[0].DefaultView;}privatevoidbtnAdd_Click(objectsender,System.EventArgse){//插入语句StringinsCmd="insertintobookvalues(@bookid,@title,@author,@price,@description,@i)";//初始化insertCommandobjSqlDataAdapter.InsertCommand=newSqlCommand(insCmd,objSqlConnection);if(objDataSet.HasChanges()){try{objSqlDataAdapter.Update(objDataSet,"book");MessageBox.Show("已经插入数据");btnUpdate.Enabled=true;btnDelete.Enabled=true;}catch(SqlExceptiones){MessageBox.Show(es.Message);}}else{MessageBox.Show("提供详细信息以添加新记录");}}第2种stringMyConn="server=127.0.0.1;uid=user;pwd=123456;database=Northwind;Trusted_Connection=no";SqlConnectionMyConnection=newSqlConnection(MyConn);stringMyInsert="insertintoCategories(CategoryName,Description)values('"+Convert.ToString(TextBox2.Text)+"','"+Convert.ToString(TextBox3.Text)+"')";SqlCommandMyCommand=newSqlCommand(MyInsert,MyConnection);try//异常处理{MyConnection.Open();MyCommand.ExecuteNonQuery();MyConnection.Close();}catch(Exceptionex){Console.WriteLine("{0}Exceptioncaught.",ex);}疑问为什么第2中用到了ExecuteNonQuery而第一种没有用到??调用ExecuteNonQuery和不调用ExecuteNonQuery有什么区别??第2中方法并没有调用sql语句,也可以插入数据?????那不是就奇怪了吗?请高手帮忙回答一下!!!我比较笨!
解决方案
解决方案二:
为什么第2中用到了ExecuteNonQuery而第一种没有用到??调用ExecuteNonQuery和不调用ExecuteNonQuery有什么区别??这里用了两种不同的方法。用DataAdapter或SqlCommand都可以更新数据的。第2中方法并没有调用sql语句,也可以插入数据?????那不是就奇怪了吗?SqlCommand调用了sql语句的。建议你详细的看下C#数据库操作那部分。
解决方案三:
第一种注意红色部分,用的是数据适配器SqlDataAdapter,创建插入命令对象对象,使用适配器的update方法更新objSqlDataAdapter.InsertCommand=newSqlCommand(insCmd,objSqlConnection);if(objDataSet.HasChanges()){try{objSqlDataAdapter.Update(
objDataSet,"book");第二种使用数据连接sqlconnection和数据命令sqlcommand,插入数据,ExecuteNonQuery是sqlcommand对象的方法,用来执行sql语句,使用insert,update,deleteSqlConnectionMyConnection=newSqlConnection(MyConn);stringMyInsert="insertintoCategories(CategoryName,Description)values('"+Convert.ToString(TextBox2.Text)+"','"+Convert.ToString(TextBox3.Text)+"')";SqlCommandMyCommand=newSqlCommand(MyInsert,MyConnection);try//异常处理{MyConnection.Open();MyCommand.ExecuteNonQuery();