已定义datatable,如何获得已知列名的datatype

sunylf 2010-09-19 04:20:10
假设DataTable 包含以下字段:id (int),sName (varchar(10)),sDate(datetime),sMoney(money),sSL(numeric(18,4))
如何写语句获得sDate列的字段类型?
DataTable 可能没有记录。也可能包含多行记录。
...全文
152 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunylf 2010-09-19
  • 打赏
  • 举报
回复
我试过了,用这个不行。dt.columns["sDate"].DataType.ToStrng()
raymond123456 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 rock870210 的回复:]
引用 3 楼 sunylf 的回复:
有没有类似这种的写法?dt.columnx["sDate"].DataType.ToStrng()
例号不确定,但字段名我可以确认。

可以这样写。但是DataType获取的不是该列在sql中的类型,而是C#中的类型,比如是System.String而不是Varchar
[/Quote]

正解
Rock870210 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sunylf 的回复:]
引申一下,就是如何根据字段名动态生成查询语句。比如字符在值前后自动补足',数值或金额则不需要。
[/Quote]
查询语句可以自己拼凑sql来完成
Rock870210 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sunylf 的回复:]
有没有类似这种的写法?dt.columnx["sDate"].DataType.ToStrng()
例号不确定,但字段名我可以确认。
[/Quote]
可以这样写。但是DataType获取的不是该列在sql中的类型,而是C#中的类型,比如是System.String而不是Varchar
sunylf 2010-09-19
  • 打赏
  • 举报
回复
引申一下,就是如何根据字段名动态生成查询语句。比如字符在值前后自动补足',数值或金额则不需要。
sunylf 2010-09-19
  • 打赏
  • 举报
回复
有没有类似这种的写法?dt.columnx["sDate"].DataType.ToStrng()
例号不确定,但字段名我可以确认。
changjiangzhibin 2010-09-19
  • 打赏
  • 举报
回复

//大致写了一下,供参考
DataTable dt = ((DataView)dataGridView1.DataSource).Table;
MessageBox.Show(dt.Columns[1].DataType.ToString());

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧