小编joh*_*ose的帖子

从数据读取器填充数据表

我在C#(MS VS2008)中做了一个基本的事情,并且对特定代码的设计提出了更多问题.

我正在创建一个数据表,然后尝试从datareader(基于SQL存储过程)加载数据表.我想知道的是,加载数据表的最有效方法是执行while语句,还是有更好的方法.

对我来说唯一的缺点是我必须在我的while语句中手动输入我要添加的字段,但我也不知道自动化的方法,因为我不希望SP中的所有字段只选择一个,但这在我眼里并不是什么大不了的事.

我已经将代码片段包含在我所做的全部内容之下,但对我而言,代码本身并不显着甚至我所询问的内容.莫思想知道我的方法论,如果我的策略错误/效率低下,我会在以后修改代码帮助.

var dtWriteoffUpload = new DataTable();
dtWriteoffUpload.Columns.Add("Unit");
dtWriteoffUpload.Columns.Add("Year");
dtWriteoffUpload.Columns.Add("Period");
dtWriteoffUpload.Columns.Add("Acct");
dtWriteoffUpload.Columns.Add("Descr");
dtWriteoffUpload.Columns.Add("DEFERRAL_TYPE");
dtWriteoffUpload.Columns.Add("NDC_Indicator");
dtWriteoffUpload.Columns.Add("Mgmt Cd");
dtWriteoffUpload.Columns.Add("Prod");
dtWriteoffUpload.Columns.Add("Node");
dtWriteoffUpload.Columns.Add("Curve_Family");
dtWriteoffUpload.Columns.Add("Sum Amount");
dtWriteoffUpload.Columns.Add("Base Curr");
dtWriteoffUpload.Columns.Add("Ledger");  

cmd = util.SqlConn.CreateCommand();
cmd.CommandTimeout = 1000;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "proc_writeoff_data_details";
cmd.Parameters.Add("@whoAmI", SqlDbType.VarChar).Value = 

WindowsIdentity.GetCurrent().Name;

cmd.Parameters.Add("@parmEndDateKey", SqlDbType.VarChar).Value = myMostRecentActualDate;
cmd.Parameters.Add("@countrykeys", SqlDbType.VarChar).Value = myCountryKey;
cmd.Parameters.Add("@nodekeys", SqlDbType.VarChar).Value = "1,2";
break;


dr = cmd.ExecuteReader();
while (dr.Read())                    
{
    dtWriteoffUpload.Rows.Add(dr["country name"].ToString(), dr["country key"].ToString());
}
Run Code Online (Sandbox Code Playgroud)

.net c# ado.net

93
推荐指数
5
解决办法
23万
查看次数

JavaFX场景构建器去了哪里?

我试图找到难以捉摸的JavaFX场景构建器,以便我可以在Intellij中使用它.我在Windows操作系统上.

Oracle已经声明JavaFX场景构建器包含在新的下载中,但无论我如何搜索都找不到它(请参阅http://www.oracle.com/technetwork/java/javafx/downloads/index.html).我认为他们已经链接到不正确的页面,谷歌搜索它让我无处可去.

我已经安装了Java 8 SDK并且运行正常.显然JavaFX现在包含在其中,但是在Java文件夹中没有任何地方可以找到场景构建器,它似乎在网上完全丢失.

请任何人可以帮忙吗?我只是想编写一个小的GUI程序,看起来JavaFX似乎是要走的路(如果它不是那么随意消除我对这个概念的看法!)

javafx intellij-idea fxml scenebuilder javafx-8

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

确定.NET Core中的操作系统

如何确定运行我的.NET Core应用程序的操作系统?过去我可以使用Environment.OSVersion.

确定我的应用程序是在Mac还是Windows上运行的当前方法是什么?

c# .net-core

93
推荐指数
3
解决办法
4万
查看次数

'python'不被识别为内部或外部命令

所以我最近安装了Python版本2.7.5并且我已经用它做了一个小循环,但问题是,当我转到cmd并输入时python testloop.py我得到错误:

'python'不被识别为内部或外部命令

我试过设置路径但没有用.

这是我的路径:

C:\ Program Files\Python27

如您所见,这是我安装Python的地方.我不知道还能做什么.有人可以帮忙吗?

python cmd

90
推荐指数
9
解决办法
42万
查看次数

如何在C#中获取月份名称?

如何在C#中查找月份名称?我不想在这个月写一个巨大的switch声明或if声明int.在VB.Net中你可以使用MonthName(),但是C#呢?

c# datetime

87
推荐指数
5
解决办法
15万
查看次数

Where子句中的SQL Row_Number()函数

Row_Number()在where子句中找到了一个用函数回答的问题.当我尝试一个查询时,我收到以下错误:

"消息4108,级别15,状态1,行1窗口函数只能出现在SELECT或ORDER BY子句中."

这是我试过的查询.如果有人知道如何解决这个问题,请告诉我.

SELECT employee_id 
FROM V_EMPLOYEE 
WHERE row_number() OVER ( ORDER BY employee_id ) > 0 
ORDER BY Employee_ID
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server analytic-functions

86
推荐指数
7
解决办法
21万
查看次数

C#(.NET)设计缺陷

C#或.NET Framework中一些最大的设计缺陷是什么?

示例:没有非可空字符串类型,您必须在从IDataReader获取值时检查DBNull.

.net c#

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

最快速的序列化和反序列化.NET对象的方法

我正在寻找最快的序列化和反序列化.NET对象的方法.这是我到目前为止:

public class TD
{
    public List<CT> CTs { get; set; }
    public List<TE> TEs { get; set; }
    public string Code { get; set; }
    public string Message { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }

    public static string Serialize(List<TD> tData)
    {
        var serializer = new XmlSerializer(typeof(List<TD>));

        TextWriter writer = new StringWriter();
        serializer.Serialize(writer, tData);

        return writer.ToString();
    }

    public static List<TD> Deserialize(string tData)
    {
        var serializer = new XmlSerializer(typeof(List<TD>));

        TextReader …
Run Code Online (Sandbox Code Playgroud)

.net c# serialization deserialization

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

Winforms TableLayoutPanel以编程方式添加行

我已经和它斗争了一段时间,并且发现许多其他人也在使用TableLayoutPanel(.net 2.0 Winforms).

问题

我试图采用一个'空白'tablelayoutpanel,它定义了10列,然后在运行时以编程方式添加控件行(即每个单元一个控件).

人们可能认为它应该如此简单

myTableLayoutPanel.Controls.Add(myControl, 0 /* Column Index */, 0 /* Row index */);
Run Code Online (Sandbox Code Playgroud)

但是(对我来说)不添加行.所以也许可以添加一行样式

myTableLayoutPanel.RowStyles.Clear();
myTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
Run Code Online (Sandbox Code Playgroud)

但这也不起作用.我已经挖掘并发现myTableLayoutPanel.RowCount使用情况从设计时间变为运行时间,因此myTableLayoutPanel.RowCount++;实际上并没有添加另一行,甚至在添加RowStyle条目之前/之后!

我遇到的另一个相关问题是控件将被添加到显示器,但它们都只是在TableLayoutPanel的点0,0处渲染,另外它们甚至不被限制在它们应该是的Cell边界内.显示在内(即使用Dock = DockStyle.Fill它们仍然显得太大/太小).

有人有一个在运行时添加行和控件的工作示例吗?

.net c# runtime tablelayoutpanel winforms

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

如何模拟"按任意键继续?"

我正在尝试编写一个C++程序,当用户从键盘输入任何字符时,它应该移动到下一行代码.

这是我的代码:

char c;

cin>>c;

cout<<"Something"<<endl;
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为当我输入一些字符然后按ENTER键时它只会移动到下一行.

要么

如果我用这个

cin.get() or cin.get(c)
Run Code Online (Sandbox Code Playgroud)

按Enter键进入下一行指令.

但我希望它能够在键盘上按下的任何键上移动到下一行,如何做到这一点?

c++

78
推荐指数
7
解决办法
13万
查看次数