我正在尝试写入数据库,我一直在使用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();
}
}
答案 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定义为该行。