SQL CE 3.5 - 写入数据库

时间:2010-07-29 19:13:13

标签: c# sql-server-ce

我正在尝试写入数据库,我一直在使用following site。特别是LoadARow函数。

我一直在收到运行时错误

  

“System.IndexOutOfRangeException:此SqlCeParamaterCollection不包含具有ParameterName'Value'的SqlCeParameter。

错误引用“command.Parameters [”@ Value“]行.Value = num;”。我正在使用的数据库有一个Value列设置为键,一个文本列。

using (SqlCeConnection connect = new SqlCeConnection("Data Source=C:\\Users\\mike\\Documents\\database.sdf"))
{
  connect.Open();

  string text = "test";
  int num = 0;

  using (SqlCeCommand command = new SqlCeCommand("insert into Data Table values (@Value, @Text)", connect))
  {
    command.Parameters.Add("@Text", SqlDbType.NVarChar);
    command.Parameters["@Value"].Value = num;
    command.Parameters.AddWithValue("@Text", text);
    command.ExecuteNonQuery();
  }
}

2 个答案:

答案 0 :(得分:2)

尝试:

using (SqlCeConnection connect = new SqlCeConnection("Data Source=C:\\Users\\mike\\Documents\\database.sdf"))
    {
        connect.Open();

        string text = "test";
        int num = 0;

        using (SqlCeCommand command = new SqlCeCommand("insert into Data Table values (@Value, @Text)", connect))
        {
           command.Parameters.Add("@Value", SqlDbType.NVarChar, num);
           command.Parameters.Add("@Text", SqlDbType.NVarChar, text);
           command.ExecuteNonQuery();
        }
    }

答案 1 :(得分:1)

该行:

command.Parameters.Add("@Text", SqlDbType.NVarChar); 

应为:

command.Parameters.Add("@Value", SqlDbType.NVarChar); 

您尚未在该点定义变量,这就是下一行错误索引的原因。我确定,这是一个错字,因为之后您将@Text定义为该行。