Когда я пытаюсь получить значение из моей таблицы доступа, а ячейка пуста, я получаю эту ошибку:
System.InvalidCastException: указанное приведение недопустимо.
это происходит, когда я пытаюсь получить информацию из столбцов триплетов. Возможно, у него нет значения в ячейке, но должно быть в столбце триплета1.Вот часть кода, который я написал.
public Codons(string name)
{
this.start = false;
this.end = false;
this.dataconnection = new OleDbConnection();
this.dataconnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Projects_2012\\Project_Noam\\Access\\myProject.accdb";
this.dataconnection.Open();
string sql = "SELECT tblCodons.codonsCodon1, tblCodons.codonsCodon3, "+
"tblCodons.codonsTriplet1, tblCodons.codonsTriplet2, tblCodons.codonsTriplet3, "+
"tblCodons.codonsTriplet4, tblCodons.codonsTriplet5, tblCodons.codonsTriplet6, "+
"tblCodons.codonsFullName, tblCodons.codonsStart, tblCodons.codonsEnd"
+" FROM tblCodons"
+" WHERE tblCodons.codonsFullName=?";
OleDbCommand mycomm = new OleDbCommand(sql, dataconnection);
mycomm.Parameters.AddWithValue("codonsFullName", name);
OleDbDataReader dataReader = mycomm.ExecuteReader();
dataReader.Read();
this.codon1 = dataReader.GetString(0);
this.codon3 = dataReader.GetString(1);
this.triplet1 = dataReader.GetString(2);
if (dataReader.GetString(3) == "")
this.triplet2 = " ";
else
this.triplet2 = dataReader.GetString(3);
if (dataReader.GetString(4) == "")
this.triplet3 = " ";
else
this.triplet3 = dataReader.GetString(4);
if (dataReader.GetString(5) == "")
this.triplet4 = " ";
else
this.triplet4 = dataReader.GetString(5);
if (dataReader.GetString(6) == "")
this.triplet5 = " ";
else
this.triplet5 = dataReader.GetString(6);
if (dataReader.GetString(7) == "")
this.triplet6 = " ";
else
this.triplet6 = dataReader.GetString(7);
this.fullName = dataReader.GetString(8);
this.start = dataReader.GetBoolean(9);
this.end = dataReader.GetBoolean(10);
dataReader.Close();
Я также попробовал null вместо "".
TNX за помощь!