Tag: datacolumn

为什么DataColumn.Caption不起作用?

我正在尝试创建一个DataTable并将其绑定到DataGridView 。 它可以工作,但我无法通过Caption属性设置列标题。 它使用ColumnName (“City”)显示标题。 MSDN说 “您可以使用Caption属性显示DataColumn的描述性或友好名称。” 这是我的代码: DataColumn dc = new DataColumn(“City”, typeof(string)); dc.Caption = “Город”; DataTable dt = new DataTable(); dt.Columns.Add(dc); DataRow row = dt.NewRow(); row[“City”] = “Moscow”; dt.Rows.Add(row); datagridview.DataSource = dt;

如何获取DataTable中列的SqlType?

我有一个从SQL数据库获得的DataTable,如下所示: using (SqlCommand cmd = new SqlCommand(query, _sqlserverDB)) { using (SqlDataAdapter adapter = new SqlDataAdapter(cmd)) { DataSet dataSet = new DataSet(); adapter.Fill(dataSet); result = (dataSet != null && dataSet.Tables != null && dataSet.Tables.Count > 0) ? dataSet.Tables[0] : null; } } 当我尝试通过dataColumn.DataType获取每列的DataType时,我得到C#类型(Int32,Int64,String等)。 问题:如何访问本机SQL数据类型(varchar,nvarchar,bigint …)而不是C#类型? 我试过dataColumn.DataType.UnderlyingSystemType,结果是一样的。

确定DataColumn是否为数字

有没有比这更好的方法来检查DataTable中的DataColumn是否为数字(来自SQL Server数据库)? Database db = DatabaseFactory.CreateDatabase(); DbCommand cmd = db.GetStoredProcCommand(“Get_Some_Data”); DataSet ds = db.ExecuteDataSet(cmd); foreach (DataTable tbl in ds.Tables) { foreach (DataColumn col in tbl.Columns) { if (col.DataType == typeof(System.Single) || col.DataType == typeof(System.Double) || col.DataType == typeof(System.Decimal) || col.DataType == typeof(System.Byte) || col.DataType == typeof(System.Int16) || col.DataType == typeof(System.Int32) || col.DataType == typeof(System.Int64)) { […]