Excel 시트에서 데이터 테이블로 데이터를 가져 오는 중 데이터 유형에 대해 문제가 있거나 질문이 있습니다. 데이터 테이블을 만들 때 열과 해당 데이터 유형을 추가합니다. 이 후 Excel에서 데이터를 가져오고이 작동합니다. 열의 데이터 유형을 검사 할 때 예상되는 결과가 표시됩니다. 그러나 함수에 값을 전달하려고 할 때 설정 한 데이터 유형 대신 객체 유형을 전달하려고한다는 메시지가 표시됩니다.C# datatable 열 데이터 형식
여기 내 코드입니다 (이것은 단순화 된 데이터 세트의) :
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
}
내가 뭘 잘못하고 있니?