c# - 是一个字段,但像类型一样使用

标签 c#

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 获取列名,我从 Combobox 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());

关于c# - 是一个字段,但像类型一样使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20214211/

相关文章:

C# 与 Unity 3D : How do I make a camera move around an object when user moves mouse

C# 编码带有换行符的文本字符串

c# - 生成 soap xml 消息的最佳方式?

c# - 生成一些唯一的数字并放入数组

c# - 如何使包含 ItemsControl 的 WPF 网格具有相同大小的列

c# - 如何在不指定通用参数的情况下将实现实例转换为接口(interface)(实现知道)?

c# - 为分布式事务处理协调器 (msdtc.exe) 添加防火墙规则

c# - 以下语句中的 `this` 和 `base` 有什么区别?

c# - 从 Guid 生成颜色

c# - 管理大量对象