SQL Compact Edition插入C#

时间:2011-03-29 23:54:28

标签: c# sql visual-studio

我试图将一些值插入到这样的SQL CE数据库中,但没有任何反应。我做错了什么?

string strConn = Properties.Settings.Default.SqlConnectionString;
using (SqlCeConnection con = new SqlCeConnection(strConn))
{
    con.Open();
    using (SqlCeCommand cmd = new SqlCeCommand("insert into CustTable(ID, Name) values (@Val1, @val2)", con))
    {
        cmd.Parameters.AddWithValue("@Val1", customer.ID);
        cmd.Parameters.AddWithValue("@Val2", customer.Name);
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.ExecuteNonQuery();
    }
}

3 个答案:

答案 0 :(得分:5)

你是如何“试图插入一些价值......”?您是从Visual Studio运行应用程序吗?为什么你认为“没有发生”?您在运行应用程序后打开原始的.sdf文件吗?

在解决方案资源管理器中检查数据库文件的“复制文件”属性;是“复制”吗?这意味着Visual Studio将在bin文件夹中创建原始数据库文件的副本,并将连接字符串设置为该路径。所有更改都发生在副本上,如果您检查原始文件,它将保持不变。

another SO question有同样的问题;看看是否有帮助。

答案 1 :(得分:2)

您好先忘记open连接 - 试试这个:

    using (SqlCeConnection con = new SqlCeConnection(strConn))
    {
        con.Open();
        using (SqlCeCommand cmd = new SqlCeCommand("insert into CustTable(ID,   Name) values (@Val1, @val2)",con))
        {
            cmd.Parameters.AddWithValue("@Val1", customer.ID);
            cmd.Parameters.AddWithValue("@Val2", customer.Name);
            cmd.CommandType = System.Data.CommandType.Text;
            cmd.ExecuteNonQuery();
        }
    }

答案 2 :(得分:0)

试试这个。

using (SqlCeConnection con = new SqlCeConnection(strConn))
{
    SqlCeParameter par;
    con.Open();
    SqlCeCommand cmd = con.CreateCommand();
    cmd.CommandText = "insert into CustTable(ID, Name) values (@Val1, @val2)";
    // Create the parameters
    par = new SqlCeParameter("@Val1", SqlDbType.Int);
    cmd.Parameters.Add(par); 
    par = new SqlCeParameter("@Val2", SqlDbType.NChar, 50);
    cmd.Parameters.Add(par);
    // Set the values        
    cmd.Parameters["@Val1"].Value = customer.ID;
    cmd.Parameters["@Val2"].Value = customer.Name;
    cmd.ExecuteNonQuery();
    // Dispose
    cmd.Dispose();
}