私は、アクセスデータベースから作成されたoledbdataadapterで満たされたデータテーブルiでいくつかの作業を行っていました。そして私は、このエラーにつまずい:自動番号とdbnull例外付きデータテーブル
は私の表は、この構造を有していることが判明: ID - >オートナンバー型(PK)
lazos_>テキスト
Asociaciones->テキスト
とするとき私はすべての正しい値で問題なく、すべての値を渡す私のデータテーブルを埋める。私は "行を挿入する"部分に示されているような新しい行を挿入します。
これは私のpkが行の作成に "autonumber"を据え付けるが、明らかにそれはやっていない。なぜなら、私が行を動かすときに、 "無効なキャスト例外"が出る。
私はカラムにid値を挿入する必要がありますが、私のデータベースに自分のdtを更新するとエラーが発生します。なぜなら、最後に作成された行を知る方法がないからです。またはdo i?
たとえば、最後のIDは50ですが、以前はID「51」のレコードを作成していましたが、それを削除しました.dt情報に基づいて51を挿入すると、それは間違いの権利を与えるでしょうか?
//// INSERT ROW
DataRow newRow = Tabla_Cods_Proy.NewRow();
newRow["Lazos"] = textBox1.Text ;
newRow["Asociaciones"] = textBox2.Text;
Tabla_Cods_Proy.Rows.Add(newRow);
MessageBox.Show("Enhorabuena!");
//CHECK ID's
for (int i = 0; i < Tabla_Cods_Proy.Rows.Count; i++)
{
if (Tabla_Cods_Proy.Rows[i].RowState != DataRowState.Deleted)
{
if (Tabla_Cods_Proy.Rows[i]["Lazos_asociados"].ToString() == "")
{
listBox7.Items.Add(Tabla_Cods_Proy.Rows[i]["Cod_Cliente"]);
listBox8.Items.Add(Tabla_Cods_Proy.Rows[i]["Cod_Inelectra"]);
ID_Cods_Proy_Sin_Asociar.Add(Convert.ToInt32(Tabla_Cods_Proy.Rows[i]["ID"]));
}
else
{
listBox3.Items.Add(Tabla_Cods_Proy.Rows[i]["Cod_Cliente"]);
listBox4.Items.Add(Tabla_Cods_Proy.Rows[i]["Cod_Inelectra"]);
ID_Cods_Proy_Asociados.Add(Convert.ToInt32(Tabla_Cods_Proy.Rows[i]["ID"]));
}
}
感謝の男、それが働きました! – Joaquin
@ジョーキン:私は助けてうれしいです。答えとしてマークしてください;) – Janez