Как мне правильно назначить тип данных для столбца в объекте DataTable?
У меня есть datatable, к которому я добавляю много столбцов с различными типами данных.
Когда после настройки datatable я проверяю тип данных столбцов, все они являются строковыми.
Мой код таков:
public partial class Form1 : Form { int i; string SelectString; string MyConnection = "sssss;database=Workbench;UID=sa;password=xxxx"; string ParentNumber; int dtcounter; int dt1counter; DataTable dt = new DataTable("MyJobTransactions"); DataRow NewRow; DataRow row; DataColumn dc1 = new DataColumn(); DataColumn dc2 = new DataColumn(); DataColumn dc3 = new DataColumn(); DataColumn dc4 = new DataColumn(); DataColumn dc5 = new DataColumn(); DataColumn dc6 = new DataColumn(); DataColumn dc7 = new DataColumn(); DataColumn dc8 = new DataColumn(); DataColumn dc9 = new DataColumn(); DataColumn dc10 = new DataColumn(); etc etc.... DataColumn dc108 = new DataColumn(); private void Populate_Columns() { dc1.ColumnName = "JobTranID"; dc1.Caption = "JobTranID"; dc1.DataType = System.Type.GetType("System.Int32"); dc2.ColumnName = "JobCode"; dc2.Caption = "JobCode"; dc2.DataType= System.Type.GetType("System.String"); dc3.ColumnName = "ActivityCode"; dc3.Caption = "ActivityCode"; dc3.DataType = System.Type.GetType("System.String"); dc4.ColumnName = "WorkCentreCode"; dc4.Caption = "WorkCentreCode"; dc4.DataType = System.Type.GetType("System.String"); dc5.ColumnName = "TranDate"; dc5.Caption = "Transaction Date"; dc5.DataType= System.Type.GetType("System.DateTime"); dc6.ColumnName = "YearNo"; dc6.Caption = "Year No"; dc6.DataType = System.Type.GetType("System.Int32"); dc7.ColumnName = "PeriodNo"; dc7.Caption = "Period No"; dc7.DataType = System.Type.GetType("System.Int32"); dc8.ColumnName = "TranType"; dc8.Caption = "Transaction Type"; dc8.DataType = System.Type.GetType("System.String"); dc9.ColumnName = "SiteID"; dc9.Caption = "Site ID"; dc9.DataType = System.Type.GetType("System.Int32"); dc10.ColumnName = "BatchNo"; dc10.Caption = "Batch No"; dc10.DataType = System.Type.GetType("System.Int32"); .... dc107.ColumnName ="JobManagerApprovedDate"; dc107.Caption = "Job ManagerDate" ;dc107.DataType = System.Type.GetType("System.DateTime"); } public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Populate_Columns(); dtcounter = 1; string dcnumber; while (dtcounter < 108) { dcnumber = "dc" + dtcounter.ToString(); dt.Columns.Add(dcnumber); dtcounter += 1; } MessageBox.Show(dt.Columns[0].DataType.ToString(),"",MessageBoxButtons.OK); ....... }
Последнее сообщение говорит мне, что dt.Columns[0] имеет тип string, а не Int32.
Как правильно назначить тип данных?
Что я уже пробовал:
Я перепробовал все альтернативы, включая typeof().
Я попытался перечислить тип всех dt.Столбцы - это все строки.