小编Kev*_*vin的帖子

如何在此C#程序中打印列名?

我拼凑了一个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)

c# datatable datarow datacolumn

59
推荐指数
3
解决办法
25万
查看次数

我的System.Numerics命名空间在哪里?

我正在使用Visual Studio 2010并尝试BigInteger在C#程序中使用该类型.这种类型应该在System.Numerics命名空间中可用,但我似乎没有在.Net 4.0框架中安装它.当我using System.Numerics;在VS2010中输入" "时," Numerics" 下方会出现一个红色下划线.还有其他人有过这个问题吗?

如果是这样,你如何解决它?我刚刚重新下载并重新安装(修复).Net 4.0框架,但这没有帮助.我从来没有遇到过我写过的其他C#程序的任何问题,所以我想知道我错过了什么.

.net c# biginteger

28
推荐指数
1
解决办法
3万
查看次数

将datarow值转换为字符串?

我有一个名为"results"的数据集,其中包含多行数据.我想把这些数据变成一个字符串,但我不知道该怎么做.我正在使用以下代码:

string output = "";
foreach (DataRow rows in results.Tables[0].Rows)     
{
    output = output + rows.ToString() + "\n";
}
Run Code Online (Sandbox Code Playgroud)

但是,我想我错过了一些东西,因为这不起作用.有人能指出我正确的方向吗?

c# ado.net datarow

25
推荐指数
3
解决办法
10万
查看次数

有没有办法比较C#中的日期"字符串"而不转换字符串?

我有两个领域:

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)

这可以在没有先将字段转换为单独的日期类型变量的情况下完成吗?

编辑:我应该提到这些值来自数据库表,其中日期值以字符串格式开头.旧遗留代码......

c#

14
推荐指数
3
解决办法
5万
查看次数

在转换为int之前将null字段转换为零?

在我的程序中,我循环遍历数据表以从每个字段获取数据.我的代码的一行看起来像这样:

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.感谢所有的建议,大家!

c# ado.net

14
推荐指数
2
解决办法
5万
查看次数

无法使用集合初始值设定项实现XYZ类型,因为它没有实现'System.Collections.IEnumerable'

我有以下课程:

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".

有人可以帮助我,告诉我我做错了什么吗?

c# linq asp.net collections

12
推荐指数
3
解决办法
2万
查看次数

右键单击菜单/复制示例的DataGridView?

我的表单上有一个DataGridView(dgv1).在一个特定的细胞,我想为用户能够用鼠标右键单击,选择"复制"将单元格的内容复制到剪贴板.任何人都可以指向我的教程或网站的方向,说明如何在C#中实现这一目标?

谢谢!

datagridview winforms c#-4.0

11
推荐指数
1
解决办法
3万
查看次数

在将列标题添加到我的数据表之后,如何添加列数据类型?

使用下面的代码(来自我拼凑在一起的控制台应用程序),我在我的数据表中添加了七列.完成后,如何为每列设置数据类型?例如,数据表的第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)

显然,我对此很陌生,但我很努力学习.有人能指出我正确的方向吗?谢谢!

c# datatable

6
推荐指数
1
解决办法
2万
查看次数

我的程序已"发布",如何更改安装路径?

我在Visual Studio 2008中将我的C#解决方案"发布"到C:\ Deploy.当我运行setup.exe程序时,它将我的程序安装到C:\ Documents and Settings\Kevin\Start Menu\Programs\MyProgram

在Visual Studio中,有什么方法可以设置自定义安装路径吗?例如,如果我希望我的程序安装到C:\ Program Files\MyProgram怎么办?

c# installer visual-studio-2008

6
推荐指数
1
解决办法
4855
查看次数

在C#中将数据从datatable移动到datagridview

我有一个C#程序,它从两个不同的数据库文件中选择数据,并将我需要的数据组合到一个数据表(dt)中.我需要的所有信息都在该数据表中,我想把它放到datagridview中.除了数据表中的信息之外,我还在datagridview中有两列,我将计算每列添加到datagridview(dataGridView1).

我的问题是:如何将我的数据表(dt)放入datagridview(dataGridView1)?我会这样做吗?:

dataGridView1.column("MemberSep") = dt.column("MBRNUM);
Run Code Online (Sandbox Code Playgroud)

我想我可以遍历数据表,计算datagridview的前两列的值,然后将它们全部写入一行直到我读完整个数据表.我之前从未使用过datagridview控件.任何帮助将不胜感激.

我的应用程序的图片

c# datatable datagridview

6
推荐指数
1
解决办法
6万
查看次数