DataTable dtcol = new DataTable();
string strdttype = cmbDttype.SelectedItem.ToString();
dtcol.TableName = txtDtname.Text;
dtxsd.Columns.Add(txtCname.Text, typeof(strdttype));
dtcol.WriteXmlSchema("@D:\Example\exampledt.xsd");


我正在编写上面的代码以用列填充数据表,这里从txtCname获取列名,并从组合框cmbDttype选择该列的数据类型。

 dtxsd.Columns.Add(txtCname.Text, typeof(strdttype)); //In this line I am getting error strdttype is a field but used is used like a type.


txtDtname带有该数据表的表名。
从最后一行开始,它将把Schema写入exampledt,但是xsd文件中的现有数据表丢失,并且出现新创建的数据表。

最佳答案

您应该为typeof operator提供类型名称(而不是变量名称)。您的strdttype具有字符串类型,因此正确的代码将是:

dtxsd.Columns.Add(txtCname.Text, typeof(string));


另一个选择-获取变量类型:

dtxsd.Columns.Add(txtCname.Text, strdttype.GetType());

09-25 20:44