我正在做一些數據表的工作,我充滿了從訪問數據庫製作的oledbdataadapter。我偶然發現了這個錯誤:自動編號和數據表與dbnull異常
原來,我的表中有這樣的結構: ID - >自動編號(PK)
lazos_>文本
Asociaciones->文本
當我填充我的數據表中的所有值傳遞給它沒有任何問題與所有正確的值。我插入一個像「插入行」部分所示的新行。
我這樣做是因爲我的pk會在行創建時插入「自動編號」,但顯然它沒有這樣做,因爲當我循環trought行時,我得到一個「無效的轉換異常」與一個對象無法投射DBNull其他類型。「
我可以插入一個id值的列,但是當我更新我的dt到我的數據庫將不會創建一個錯誤,因爲我沒有辦法知道這是最後一行創建?,或者我?
例如讓我說我的數據表中的最後一個ID是50,但在數據庫y先前做了一個ID爲「51」的記錄,但隨後抹去它,如果我插入51基於我的dt信息,它會給出錯誤的權利?
//// 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
@Joaquin:很高興我能幫上忙。標記爲答案;) – Janez