ADO.NET方法如何向数据库添加记录,请指教
SqlConnection myConnection = new SqlConnection (strConn);  
			myConnection.Open();			
			SqlDataAdapter myDataAdapter = new SqlDataAdapter ();  
			DataSet myDataSet = new DataSet ();
		  string strCom = "SELECT * FROM tblARepairPart";
			myDataAdapter.SelectCommand = new SqlCommand (strCom,myConnection);  
  		myDataAdapter.Fill (myDataSet,"tblARepairPart");
			MessageBox.Show("fill");			 
			DataRow myDataRow; //定义一个DataRow 
			DataTable myDataTable; //定义一个DataTable 
			myDataTable = myDataSet.Tables["tblARepairPart"]; //引用DataSet中的一个DataTable
			myDataRow = myDataTable.NewRow(); //调用NewRow方法得到一个DataRow
			myDataRow["RepairID"] = "yanyang";  			
			myDataRow["PartID"] = "1235";  
			myDataRow["PositionNo"] = "18888";  
             myDataRow["Quantity"] = "5555";
			myDataTable.Rows.Add(myDataRow); //将此DataRow添加到myDataTable中			
			myDataAdapter.Update(myDataSet);
---------------------------
以上代码,添加不成功。
错误提示为:
未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。
其他信息: Update 无法找到 TableMapping['Table'] 或 DataTable“Table”。
------解决方案--------------------myDataAdapter的UpdateCommand设为:
UPDATE tblARepairPart set RepairID="yanyang",PartID="1235"...;
------解决方案--------------------添加成功了才怪呢,你的myDataSet根本没有改变,你把数据添加到无关的DataTable中。
这样试试:
DataRow dr = myDataSet.Table[0].NewRow();
dr["RepairID"] = "yanyang"; 
.......................
myDataSet.Table[0].Rows.Add(dr);
myDataAdapter.Update(myDataSet);  
------解决方案--------------------
恩
楼主
datarow dr=myDataSet.table["..."].newrow
dr["RepairID"] = "yanyang"; 
dr["PartID"] = "1235"; 
dr["PositionNo"] = "18888"; 
myDataRow["Quantity"] = "5555";  
myDataSet.table("...").row.add(dr);  
然后还有声明个
sqlcommandbuilder s=new sqlcommandbuilder(myDataAdapter )
myDataAdapter.Update(myDataSet)
这样应该就行了吧。
------解决方案--------------------DataSet myDataSet = new DataSet ();  
  string strCom = "SELECT * FROM tblARepairPart";  
myDataAdapter.SelectCommand = new SqlCommand (strCom,myConnection);      
   myDataAdapter.Fill (myDataSet,"tblARepairPart");  
不能这么写的,你的DataSet没有把“tblARepairPart”这个表先加进去就,就执行这句myDataAdapter.Fill (myDataSet,"tblARepairPart"); 不行的,这样你的DataSet 里就会有两张表“Table” 和“tblARepairPart”
------解决方案--------------------接分了
------解决方案--------------------
sqldataadapter不会自动生成实现dataset的更改与关联的sql server实例之间的协调所需的transact-sql语句,但是如果设置了sqldataadapter的selectcommand属性,则可以创建一个sqlcommandbuilder对象来自动生成用于表单更新的transact-sql语句;否则的话要自己添加一个才可以更新成功