Я импортирую данные с листа excel в datatable, и у меня возникла проблема/вопрос о типах данных. Когда я создаю datatable, я добавляю столбцы и их типы данных. После этого я импортирую данные из excel, и это отлично работает. Когда я проверяю тип данных столбцов, он говорит, что я ожидаю. Однако, когда я пытаюсь передать значение функции, я получаю сообщение о том, что я пытаюсь передать тип объекта, а не тип данных, который я установил.C# datatable column datatype
вот мой код (это упрощенный набор данных):
public void importData(string _file)
{
DataTable dtTest = new DataTable();
dtTest.Columns.Add("a", typeof(Int32));
dtTest.Columns.Add("b", typeof(Int32));
string connString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", _file);
OleDbConnection conn = new OleDbConnection(connString);
conn.Open();
OleDbDataAdapter objAdapter = new OleDbDataAdapter();
string sheetName = "Sheet1";
string sql = "SELECT * FROM [" + sheetName + "$]";
OleDbCommand objCmdSelect = new OleDbCommand(sql, conn);
objAdapter.SelectCommand = objCmdSelect;
objAdapter.Fill(dtTest);
conn.Close();
form.write(dtTest.Rows[0]["a"]);
}
функция 'form.write()' принимает целое число.
Когда я проверяю тип данных, прежде чем пытаться передать значение form.write, он говорит, что это Int32.
if (dtTest.Columns[0].DataType == typeof(Int32))
{
//this is true
}
что я делаю неправильно?