[英]Trying to save a manual DataTable to my SQL Server CE table
在我的数据库中,我有一个带有主键标识列和其他3个列的表,如下所示。
我想手动创建一个DataTable
并将其保存到我的SQL Server CE数据库中。 有人可以帮我调整我的代码吗?
DataTable table1 = new DataTable("MyTable1");
table1.Columns.Add("LastName");
table1.Columns.Add("FirstName");
table1.Columns.Add("SortColumn");
table1.Rows.Add("Doe", "John", 1);
table1.Rows.Add("Doe", "Mary", 2);
DataSet ds = new DataSet("notCritical1");
ds.Tables.Add(table1);
using (SqlCeConnection con = new SqlCeConnection(TestClickOnceApp.classes.ClassDatabase.m_connectionString))
{
con.Open();
SqlCeDataAdapter da = new SqlCeDataAdapter("Select * from MyTable1", con);
da.Fill(ds, "MyTable1");
da.Update(ds, "MyTable1");
}
您实际上根本不需要数据集。 只需使用INSERT
将记录放入数据库中即可。 它看起来应该像这样:
using (SqlCeConnection connection = new SqlCeConnection(connectionString)
{
connection.Open();
SqlCeCommand command = connection.CreateCommand();
command.CommandText = "INSERT INTO <TableName> LastName, FirstName, SortColumn VALUES 'Doe', 'John', '1'";
command.ExecuteNonQuery();
connection.Close();
}
我没有SqlCompact进行测试,但我想您可以编写这样的代码
using (SqlCeConnection con = new SqlCeConnection(connectionString))
{
con.Open();
SqlCeCommand cmd = new SqlCeCommand("Select * from MyTable1 Where 1=0", con);
SqlCeDataAdapter da = new SqlCeDataAdapter();
da.SelectCommand = cmd;
SqlCeCommandBuilder cb = new SqlCeCommandBuilder(da);
da.Update(table1);
}
无需使用数据集
有关基类方法DbDataAdapter.Update(DataTable t)的更多详细信息,请参见此处。
如果我正确理解您的意见,那么您会尝试错。 您必须执行一条SQL语句。 DataTable / DataSet不代表数据库本身。 也许这可以帮助您链接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.