私はアプリケーションのデータベースの内容を表示したいプログラムで作業しています。ユーザーは値を編集できる必要がありますので、データグリッドビューは最善の選択。C#datagridviewに行が含まれていません
私はdatagridviewを(winformにドラッグアンドドロップして)正常に作成し、データソースを正しく設定しました(コンテンツが表示されています)。
private void dtgv_users_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
string id = userDB.Rows[e.RowIndex]["id"] + "";
string column = userDB.Columns[e.ColumnIndex].ColumnName;
var rows = dtgv_users.Rows;
string data = dtgv_users.Rows[e.RowIndex].Cells[e.ColumnIndex].Value + ""
db.Update("users", String.Format("{0}='{1}' WHERE id={2}", column, data, id));
}
private void dtgv_users_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (e.ColumnIndex == 0)
dtgv_users.CancelEdit();
}
:私も編集の終了と検証イベントのためにいくつかのEventHandlerを設定している
db = new DatabaseHandler();
userDB = db.Get("users");
dtgv_users.DataSource = userDB.DefaultView;
dtgv_users.Update();
:
のDataGridViewのデータソースを設定します
しかし、私は問題が発生しました:私はdatagridviewの最初の行を編集し、Enterキーを押すと、次の問題が発生します:An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll
、私は手動で行がdatagridviewで何をチェックしている場合、行。
この問題を解決するにはどうすればよいですか。なぜdatagridviewに行が含まれていませんか?
私はあなたが私を助けてくれることを願っています!
種類よろしく、 ジョヴァンニ
編集
問題は、コードからこれを削除Initialize
と嘘をつき、それが動作します、ありがとう!
変更以下の 'dtgv_users.Update();' 'dtgv_users.Refresh()へ;'また、あなたが 'のInitializeComponentを(持っている理由はそこにある);' 'あなたのdtgv_users_CellValidating'なeventHandler – MethodMan
に私は彼の今DONETています私は同じエラーを受け取りました –
このメソッドは 'db.Get(" users ");' 'DataTable、DataSet、...'を返します。デバッガを使用すると、どの行がエラーになりますか... – MethodMan