我正在開發一個簡單的數據庫相關的應用程序。 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