我正在开发一个简单的数据库相关的应用程序。 GUI由datagrid视图和一个“保存”按钮组成。 datagridview使用数据集作为源。数据集依次通过从SQL Server Compact Edition数据库文件中获取数据进行填充。将datagridview的内容保存到数据库的问题
问题是,当我使用datagridview更改数据库的内容,然后继续进行更改。
SqlCeDataAdapter da = new SqlCeDataAdapter();
da.UpdateCommand = Con.CreateCommand(); // Con is SqlCeCommand object
da.UpdateCommand.CommandText = "update TempTable set " +
"S.No = @S.No , Name = @Name";
this.AddParams(da.UpdateCommand, "S.No", "Name");
da.Update(ds); // ds is the dataset used as source by the datagridview
和AddParams方法...
private void AddParams(SqlCeCommand cmd, params string[] cols)
{
foreach (string col in cols)
{
cmd.Parameters.Add("@" + col, SqlDbType.Char, 0, col);
}
}
问题是我在下面一行得到一个ArguementException与描述为 “字符”
cmd.Parameters.Add("@" + col, SqlDbType.Char, 0, col);
我相信是由于其中一个参数是varchar而另一个是整数的事实。那么我怎么做到这一点?
p.s.我是Dot Net的初学者&编程。
你尝试过在S.No取出点`.`?也许解析器会随着它跳过,而cmd.Parameters.Add中的`@`是可选的,如果你没有定义大小(0),则可以将其移除 – 2011-01-02 17:27:57