我正在从我的应用程序生成一个数据表,我想将整个数据表保存到一个数据库表中。
DataTable ds = //add the info from the queue in the applicationDataTable正在生成,但我不需要select语句,我只想将DataTable中的所有信息插入到已经创建的db表中(更新表)。我将使用ODBC连接来访问MYSQL数据库
我想通过dataset直接将数据更新到数据库中
public void update(DataTable ds)
{
try
{
lock (myLockHolder)
{
X1 = 1;
OdbcConnection con =
new OdbcConnection(LocalConnection.GetLocalConnetionString());
OdbcCommand cmd;
OdbcDataAdapter da;
DataSet ds1=new DataSet();
string query = "";
query = "update parameter" + Environment.NewLine;
query += "set paramvalue=paramvalue,date_logged1=date_logged1,"
+ Environment.NewLine;
query += " Quality=Quality,date_logged=date_logged"
+ Environment.NewLine;
query += " where itemID=itemID";
cmd = new OdbcCommand(query, con);
da = new OdbcDataAdapter(cmd);
ds1=new DataSet();
ds1.Tables.Add(ds);
da.Update(ds1);
}
}
catch { }
finally { }
}它将像这个方法一样使用,捕捉这个异常“更新找不到TableMapping'Table‘或DataTable’Table‘”。
发布于 2011-05-26 15:04:02
您应该创建插入sql字符串,循环遍历datatable中的所有行,为datatable中的每一列添加参数,并执行此查询。
string sql = "INSERT INTO T (A, B, C) VALUES (@A, @B, @C)";
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
foreach (DataRow r in myTable.Rows)
{
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@A", r["A"]);
cmd.Parameters.AddWithValue("@B", r["B"]);
cmd.Parameters.AddWithValue("@C", r["C"]);
cmd.ExecuteNonQuery();
}
}发布于 2014-01-24 14:35:52
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
foreach (DataRow r in dataTable2.Rows)
{
string sql = "INSERT INTO BALREP (ACODE, ANAME, QTY) VALUES ('" +r["CODE"] + "', '" + r["NAME"] + "', '" + r["CELL"] + "')";
SqlCommand cmd2 = con.CreateCommand();
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
}发布于 2011-05-26 16:15:37
你写道:>我希望不使用foreach循环
尝试在dotConnect for MySQL中使用MySqlDataTable类。阅读有关MySqlDataTable.Update()方法和MySqlDataTable.CachedUpdates状态的更多信息。
https://stackoverflow.com/questions/6134256
复制相似问题