我有:
DataTable Table = new DataTable;
SqlConnection = new System.Data.SqlClient.SqlConnection("Data Source=" + ServerName + ";Initial Catalog=" + DatabaseName + ";Integrated Security=SSPI; Connect Timeout=120");
SqlDataAdapter adapter = new SqlDataAdapter("Select * from " + TableName, Connection);
adapter.FillSchema(Table, SchemaType.Source);
adapter.Fill(Table);
DataColumn column = DataTable.Columns[0];
Run Code Online (Sandbox Code Playgroud)
我想做的是:
假设当前column.DataType.Name是"Double".我希望它成为"Int32".
我该如何实现这一目标?
我拼凑了一个C#程序,它接受一个.csv文件并将其写入DataTable.使用这个程序,我可以循环遍历每一行DataTable并打印出行中包含的信息.控制台输出如下所示:
--- Row ---
Item: 1
Item: 545
Item: 507
Item: 484
Item: 501
Run Code Online (Sandbox Code Playgroud)
我想在每个值旁边打印列名,以便它看起来像这样:
--- Row ---
Item: 1 Hour
Item: 545 Day1 KW
Item: 507 Day2 KW
Item: 484 Day3 KW
Item: 501 Day4 KW
Run Code Online (Sandbox Code Playgroud)
有人可以查看我的代码并告诉我我可以添加什么以便打印列名称吗?我对C#很新,所以如果我忽视了某些事情,请原谅我.
这是我的代码:
// Write load_forecast data to datatable.
DataTable loadDT = new DataTable();
StreamReader sr = new StreamReader(@"c:\load_forecast.csv");
string[] headers = sr.ReadLine().Split(',');
foreach (string header in headers)
{
loadDT.Columns.Add(header); // I've added the column headers here.
} …Run Code Online (Sandbox Code Playgroud) 我需要从特定行迭代columnname和column数据类型.我见过的所有例子都迭代了整个数据表.我想将一行传递给函数来进行一系列条件处理.我想分开条件处理以便于阅读.
这就是我所拥有的:
private void doMore(DataRow dr)
{
foreach (DataColumn c in dr.ItemArray) //loop through the columns.
{
MessageBox.Show(c.ColumnName.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
返回的错误是
System.InvalidCastException:无法将类型为"System.String"的对象强制转换为"System.Data.DataColumn".
如何从行中获取列名称或者我没有选择并且必须将整个数据表传递给函数?
我有一个从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;
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试通过dataColumn.DataType获取每列的DataType时,我得到C#类型(Int32,Int64,String等).
问题:如何访问本机SQL数据类型(varchar,nvarchar,bigint ...)而不是C#类型?
我试过dataColumn.DataType.UnderlyingSystemType,结果是一样的.
有没有比这更好的方法来检查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)) {
// this column is numeric
} else {
// this column is not numeric
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个DataTable并将其绑定到DataGridView.它工作,但我不能通过Caption属性设置列标题.它使用ColumnName("城市")显示标题.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;
Run Code Online (Sandbox Code Playgroud) 在C#和.NET中,可以创建一个DataView仅包含给定s的适当子集的吗?DataColumnDataTable
就关系代数而言,RowFilter为了执行"选择"操作(σ),人们指定一个.如何执行"投影"操作(π)?
我有一个包含许多列的数据表,以及一个数据网格,我需要在其中只显示其中的一些列.我需要一个如何做的代码示例.我发现了一大堆的例子告诉我转的AutoGenerateColumns为true,并设置表作为DataContext的显示在我的数据表中的所有列.我猜然后我可以把在代码的网页来隐藏我并不需要,重新安排剩下的那些适当的顺序和大小,但肯定必须有一个更优雅的方式将所有列.
在设计师,我必须建立我想显示的列集合,我得到了确定年代,我怎么现有的DataGrid列绑定到我的代码中的特定数据表中的列?
我有一个表支付,它有一个名为payMonth的可归零整数列.我有以下课程和清单:
public class months
{
public int payMonth { get; set; }
public string monthName { get; set; }
}
lstMonths = new List<months> {
,new months() { payMonth = 1, monthName = "jan" }
,new months() { payMonth = 2, monthName = "feb" }
,new months() { payMonth = 3, monthName = "mar" }
,new months() { payMonth = 4, monthName = "apr" }
,new months() { payMonth = 5, monthName = "may" }
,new months() { payMonth = …Run Code Online (Sandbox Code Playgroud) 我有一个DateTime的DataColumn,我想知道如何只有更早的日期(分钟)和更晚的日期(最大).
谢谢