C# 尝试将手动数据表保存到我的SQL Server CE表

C# 尝试将手动数据表保存到我的SQL Server CE表,c#,sql-server-ce,C#,Sql Server Ce,在我的数据库中,我有一个带有主键标识列的表,以及以下3列 我想手动创建一个数据表,并将其保存到我的SQL Server CE数据库中。有人能帮我修改代码吗 DataTable table1 = new DataTable("MyTable1"); table1.Columns.Add("LastName"); table1.Columns.Add("FirstName"); table1.Columns.Add("SortColumn"); table1.Rows.Add("Doe", "Joh

在我的数据库中,我有一个带有主键标识列的表,以及以下3列

我想手动创建一个
数据表
,并将其保存到我的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");
}

如果我理解正确,你就错了。您必须执行SQL语句。DataTable/DataSet不表示数据库本身。
如果我理解正确,也许这会对你有所帮助,但你试错了。您必须执行SQL语句。DataTable/DataSet不表示数据库本身。
也许这可以帮助您

我没有要测试的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)的更多详细信息可以是

我没有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)的更多详细信息可以是

您根本不需要数据集。只需使用
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();
}
使用(SqlCeConnection连接=新的SqlCeConnection(connectionString)
{
connection.Open();
SqlCeCommand=connection.CreateCommand();
command.CommandText=“插入LastName、FirstName、SortColumn值‘Doe’、‘John’、‘1’;
command.ExecuteNonQuery();
connection.Close();
}

您根本不需要数据集。只需使用
插入
将记录放入数据库中即可。它应该如下所示:

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();
}
使用(SqlCeConnection连接=新的SqlCeConnection(connectionString)
{
connection.Open();
SqlCeCommand=connection.CreateCommand();
command.CommandText=“插入LastName、FirstName、SortColumn值‘Doe’、‘John’、‘1’;
command.ExecuteNonQuery();
connection.Close();
}

DataAdapters用于将控件(如DataGrid)值绑定到数据集。您的示例没有控件;如果未绑定到控件,则不需要DataAdapter。DataAdapters用于绑定控件(如DataGrid)数据集的值。您的示例没有控件;如果您没有绑定到控件,则不需要DataAdapter。这正是我想要做的…因为我想手动循环并操作数据:非常感谢!很高兴能提供帮助。如果您发现我的答案有用,请向上投票或接受,如常见问题解答中所述,哈哈,我尝试了to向上投票,但我想我太新了,没有任何可信度yet@user1366569是的,你至少需要一个。这正是我想要做的…因为我想手动循环并操作数据:非常感谢!很高兴能提供帮助。如果你觉得我的答案有用,请向上投票或接受FAQ中解释的答案,哈哈,我试着向上投票,但我想我太新了,没有任何可信度yet@user1366569是的,你至少需要一个小时。