Я работал над таблицей данных, которую я заполнил oledbdataadapter, сделанным из базы данных доступа.и я наткнулся на эту ошибку:
Оказывается, что моя таблица имеет такую структуру: ID -> autonumber (PK)
lazos_> text
Asociaciones-> text
и когда я заполняю свою таблицу данных, все значения передаются ей без проблем со всеми правильными значениями.Я вставляю новую строку, как показано в части «вставка строки».
Я делаю это, полагая, что мой pk будет вставлять «autonumber» при создании строки, но, очевидно, он этого не делает, потому что, когда я зацикливаюсьстроки, которые я получаю «недопустимое исключение приведения» с Объектом, не могут быть преобразованы из DBNull в другие типы. "
Я МОГУ ВСТАВИТЬ значение столбца id в столбец, но когда я обновляю свой dt в моей базе данных, это не таксоздать ошибку, потому что у меня нет возможности узнать, какая последняя строка была создана? или, например, я?
, скажем, в моей базе данных последний идентификатор равен 50, но в базе данных y ранее сделалзапись с идентификатором "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"]));
}
}