我拼凑了一个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) 我正在使用Visual Studio 2010并尝试BigInteger在C#程序中使用该类型.这种类型应该在System.Numerics命名空间中可用,但我似乎没有在.Net 4.0框架中安装它.当我using System.Numerics;在VS2010中输入" "时," Numerics" 下方会出现一个红色下划线.还有其他人有过这个问题吗?
如果是这样,你如何解决它?我刚刚重新下载并重新安装(修复).Net 4.0框架,但这没有帮助.我从来没有遇到过我写过的其他C#程序的任何问题,所以我想知道我错过了什么.
我有一个名为"results"的数据集,其中包含多行数据.我想把这些数据变成一个字符串,但我不知道该怎么做.我正在使用以下代码:
string output = "";
foreach (DataRow rows in results.Tables[0].Rows)
{
output = output + rows.ToString() + "\n";
}
Run Code Online (Sandbox Code Playgroud)
但是,我想我错过了一些东西,因为这不起作用.有人能指出我正确的方向吗?
我有两个领域:
string date1 = "04/26/10";
string date2 = "04/25/10";
Run Code Online (Sandbox Code Playgroud)
如何比较这两个字段?:
if (date2 <= date1)
{
// perform some code here
}
Run Code Online (Sandbox Code Playgroud)
这可以在没有先将字段转换为单独的日期类型变量的情况下完成吗?
编辑:我应该提到这些值来自数据库表,其中日期值以字符串格式开头.旧遗留代码......
在我的程序中,我循环遍历数据表以从每个字段获取数据.我的代码的一行看起来像这样:
int LYSMKWh = Convert.ToInt32(resultsDT.Rows[currentRow]["LYSMKWh"]);
Run Code Online (Sandbox Code Playgroud)
基本上,我只是获取单元格中的值并将其转换为int32.但是,当字段中的数据为空时,我遇到了一个问题.我收到一条无效的Cast错误消息,指出无法将"DBNull"转换为其他类型.
所以,我知道我可以在尝试通过执行以下操作之前检查字段的值:
if (resultsDT.Rows[currentRow]["LYSMKWh"] == null)
{
resultsDT.Rows[currentRow]["LYSMKWh"] = 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,有更好的方法吗?当我试图转换价值而不必诉诸于使用时,我能做什么"内联" if吗?
编辑:我尝试使用这个建议的方法:
int LYSMKWh = Convert.ToInt32(resultsDT.Rows[currentRow]["LYSMKWh"] ?? "0");
Run Code Online (Sandbox Code Playgroud)
不幸的是,我仍然收到有关DBNull类型的Invalid Cast错误消息.有人提出我可能会遇到问题?运算符,如果两边的类型不同.
此外,由于我完全控制了我正在构建数据表的数据,因此我对其进行了更改,以便不会将任何空值写入任何字段.因此,在这种情况下,这几乎无需将null转换为int32.感谢所有的建议,大家!
我有以下课程:
public class CommentList
{
string ItemType;
string Comment1;
string Status1;
string DiscussionBoardId;
Guid CourseId;
Guid CommentID;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试执行以下LINQ语句:
List<CommentList> query=
from c in db.Comments
join s in db.Status on c.StatusId equals s.StatusId
join d in db.DiscussionBoards
on c.DiscussionBoardId equals d.DiscussionBoardId
where d.CourseId=="CourseID"
orderby d.ItemType, d.DiscussionBoardId
select new CommentList {
d.ItemType,
c.Comment1,
s.Status1,
c.DiscussionBoardId,
d.CourseId,
c.CommentID
};
Run Code Online (Sandbox Code Playgroud)
问题是,编辑器抱怨select语句的第一个括号.它说:
无法使用集合初始值设定项实现类型"CommentList",因为它没有实现"System.Collections.IEnumerable".
有人可以帮助我,告诉我我做错了什么吗?
我的表单上有一个DataGridView(dgv1).在一个特定的细胞,我想为用户能够用鼠标右键单击,选择"复制"将单元格的内容复制到剪贴板.任何人都可以指向我的教程或网站的方向,说明如何在C#中实现这一目标?
谢谢!
使用下面的代码(来自我拼凑在一起的控制台应用程序),我在我的数据表中添加了七列.完成后,如何为每列设置数据类型?例如,数据表的第1列将具有标题"ItemNum",我想将其设置为Int.我在网上查看了一些示例,但大多数都显示了一次创建列标题和列数据类型,如下所示:
loadDT.Columns.Add("ItemNum", typeof(Int));
Run Code Online (Sandbox Code Playgroud)
在我的程序中,该列已经有了一个名称.我只是想做这样的事情(不是实际的代码):
loadDT.Column[1].ChangeType(typeof(int));
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的代码(它给列命名):
// get column headings for datatable by reading first line of csv file.
StreamReader sr = new StreamReader(@"c:\load_forecast.csv");
headers = sr.ReadLine().Split(',');
foreach (string header in headers)
{
loadDT.Columns.Add(header);
}
Run Code Online (Sandbox Code Playgroud)
显然,我对此很陌生,但我很努力学习.有人能指出我正确的方向吗?谢谢!
我在Visual Studio 2008中将我的C#解决方案"发布"到C:\ Deploy.当我运行setup.exe程序时,它将我的程序安装到C:\ Documents and Settings\Kevin\Start Menu\Programs\MyProgram
在Visual Studio中,有什么方法可以设置自定义安装路径吗?例如,如果我希望我的程序安装到C:\ Program Files\MyProgram怎么办?
我有一个C#程序,它从两个不同的数据库文件中选择数据,并将我需要的数据组合到一个数据表(dt)中.我需要的所有信息都在该数据表中,我想把它放到datagridview中.除了数据表中的信息之外,我还在datagridview中有两列,我将计算每列添加到datagridview(dataGridView1).
我的问题是:如何将我的数据表(dt)放入datagridview(dataGridView1)?我会这样做吗?:
dataGridView1.column("MemberSep") = dt.column("MBRNUM);
Run Code Online (Sandbox Code Playgroud)
我想我可以遍历数据表,计算datagridview的前两列的值,然后将它们全部写入一行直到我读完整个数据表.我之前从未使用过datagridview控件.任何帮助将不胜感激.

c# ×9
datatable ×3
ado.net ×2
datagridview ×2
datarow ×2
.net ×1
asp.net ×1
biginteger ×1
c#-4.0 ×1
collections ×1
datacolumn ×1
installer ×1
linq ×1
winforms ×1