相关疑难解决方法(0)

从数据读取器填充数据表

我在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万
查看次数

无法对空引用执行运行时绑定 - 清空Excel单元格

我似乎无法想出一种方法来纠正标题中提到的错误,并且正在寻找关于应该做什么的一些想法.

我试图将excel电子表格的行读入对象.

它第一次循环我没有问题,因为第1行,第1列和第1行第2列都有数据.

但当它到达第2行,第1列和第2行第2列时,它会因上述错误而失败,因为电子表格中的那些单元格是"空的"

我无法解决我可以在哪里进行"if null"检查.

谁能建议怎么做呢?

这是我的代码......

private static void IterateRows(Excel.Worksheet worksheet)
    {
        //Get the used Range
        Excel.Range usedRange = worksheet.UsedRange;

        // create an object to store the spreadsheet data
        List<SPREADSHEETModel.spreadsheetRow> spreadsheetrows = new List<SPREADSHEETModel.spreadsheetRow>();

        //Iterate the rows in the used range
        foreach (Excel.Range row in usedRange.Rows)
        {
            for (int i = 0; i < row.Columns.Count; i++)
            {
                spreadsheetrows.Add(new SPREADSHEETModel.spreadsheetRow()
                {
                    col1 = row.Cells[i + 1, 1].Value2.ToString(),
                    col2 = row.Cells[i + 1, 2].Value2.ToString()
                });
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

.net c# excel vsto

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

像数组一样访问Viewbag?

想象一下一个名为

 ViewBag.Modes
Run Code Online (Sandbox Code Playgroud)

其中包含以下内容:

Simple
Advanced
Manual
Complete
Run Code Online (Sandbox Code Playgroud)

我如何像在数组中那样按索引访问viewbag?

例如:Simple的索引为0,则它​​看起来像这样

ViewBag.Modes[0]
Run Code Online (Sandbox Code Playgroud)

我尝试了上面的方法,但无法正常工作...如何使用Viewbag复制此方法,或者可以使用替代方法?

html asp.net-mvc razor viewbag

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

标签 统计

.net ×2

c# ×2

ado.net ×1

asp.net-mvc ×1

excel ×1

html ×1

razor ×1

viewbag ×1

vsto ×1