我有一个用 .NET 语言构建的应用程序。
在这个应用程序中,我们主要读/写数据库(SQL Server 2005)。有时(对于单个输入)我只使用 SQL 查询,例如:
commandText = "INSERT INTO Test_Table (Number) VALUES ('10')";
command = new System.Data.SqlClient.SqlCommand(commandText, connection);
command.ExecuteNonQuery();
如果我想更新我的数据库中的一堆记录,我使用这个SqlCommandBuilder
类,如下例所示:
adapter = new System.Data.SqlClient.SqlDataAdapter("SELECT * FROM Test_Table WHERE Number = '9'",connection);
commandbuilder = new System.Data.SqlClient.SqlCommandBuilder(adapter);
dataset = new System.Data.DataSet();
adapter.Fill(dataset,"Example");
dataset.Tables["Example"].Rows[0].["Number"] = 10;
adapter.update(dataset,"Example");
这些效果很好。但是现在,由于某种原因,我需要插入/更新日期时间并CONVERT
在其上使用该功能。
单个 SQL 查询效果很好:
t = System.DateTime.Now;
commandText = "INSERT INTO Test_Table (DateTime) VALUES (datetime, 't.toString()', 103)";
command = new System.Data.SqlClient.SqlCommand(commandText, connection);
command.ExecuteNonQuery();
这没有问题,但是我不知道如何使用我的SqlCommandBuilder
脚本来实现相同的目标。我可以将所有内容更改为单个查询,但这需要一周时间。
我已经尝试了以下方法,但没有成功:
t = System.DateTime.Now;
adapter = new System.Data.SqlClient.SqlDataAdapter("SELECT * FROM Test_Table WHERE Number = '9'", connection);
commandbuilder = new System.Data.SqlClient.SqlCommandBuilder(adapter);
dataset = new System.Data.DataSet();
adapter.Fill(dataset, "Example");
dataset.Tables["Example"].Rows[0].["DateTime"] = "CONVERT(datetime,'" + t.toString() + "',103);
adapter.update(dataset, "Example");