c# datatable插入数据库
C# 如何将DataTable一次写入数据库
public void UpdateDataTable(DataTable DT)
{
SqlConnection Con = GetConnection();
string strSQL = "select * from orderitems" ;
if (Con.State == ConnectionState.Closed)
{
Con.Open();
}
try
{
SqlCommand Cmd = new SqlCommand(strSQL, Con);
SqlDataAdapter Dad = new SqlDataAdapter(Cmd);
Dad.Update(DT);
Con.Close();
}
catch (SqlException ex)
{
throw ex;
}
}
执行程序后数据并没有插入数据库,请帮忙看看代码该如何修改
------解决方案--------------------你的SQL语句不正确。
DataAdapter只是一个适配器,它必须有相应的SqlCommand来为其工作,并且有什么样的SqlCommand就执行什么样的工作。
DataAdapter.SelectCommand用于获取数据,因此它的CommandText应该是select语句;
DataAdapter.InsertCommand用于插入数据,因此它的CommandText应该是insert语句;
DataAdapter.DeleteCommand用于删除数据,因此它的CommandText应该是delete语句;
DataAdapter.UpdateCommand用于更新数据,因此它的CommandText应该是update语句;
因此你的代码应该这样写:
SelectSQL="select * from tblName";
SqlCommand SelectCmd = new SqlCommand(SelectSQL, Con);
InsertSQL="insert into tblName (Input_Time,Location_ID) values (@Input_Time,@Location_ID)";
SqlCommand InsertCmd = new SqlCommand(InsertSQL, Con);
InsertCmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Input_Time",System.Data.SqlDbType.Time));
InsertCmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Location_ID",System.Data.SqlDbType.NVarChar));
SqlDataAdapter Dad = new SqlDataAdapter();
Dad.SelectCommand = SelectCmd;
Dad.InsertCommand = InsertCmd;
Dad.Update(DT);