private void button1_Click(object sender, EventArgs e)
{
DataClasses1DataContext dc = new DataClasses1DataContext();
var rec = dc.reportsSents.FirstOrDefault();
int rowCount = dc.reportsSents.Count();
if (rec != null)
{
for(int i = 0; i <= rowCount;)
{
var matchedCaseNumber = (from CaseNumberKey in dc.GetTable<reportsSent>()
select CaseNumberKey).FirstOrDefault();
(new MyReportRenderer()).RenderTest(Convert.ToString(matchedCaseNumber));
dc.reportsSents.DeleteOnSubmit(matchedCaseNumber);
dc.SubmitChanges();
i = (i +1);
}
}
Run Code Online (Sandbox Code Playgroud)
当执行上面的代码时,我收到此错误:
值不能为空.参数名称:实体
和matchedCaseNumber在此行中突出显示:
dc.reportsSents.DeleteOnSubmit(matchedCaseNumber);
这是什么意思,为什么我得到它.我想要做的是将MatchedCaseNumber传递给方法,然后在执行该方法后删除它,然后逐步执行该表.任何帮助,将不胜感激.
谢谢.
你有
var matchedCaseNumber = (...).FirstOrDefault();
dc.reportsSents.DeleteOnSubmit(matchedCaseNumber);
Run Code Online (Sandbox Code Playgroud)
那么如果matchedCaseNumber是null呢?这OrDefault使得可能.
将第二行更改为:
if (matchedCaseNumber != null)
dc.reportsSents.DeleteOnSubmit(matchedCaseNumber);
Run Code Online (Sandbox Code Playgroud)
也,
int rowCount = dc.reportsSents.Count();
for(int i = 0; i <= rowCount;)
{
...
i = (i +1);
}
Run Code Online (Sandbox Code Playgroud)
应该成为:
for(int i = 0; i < rowCount; i += 1) // note: NOT <=
{
...
}
Run Code Online (Sandbox Code Playgroud)
你循环rowCount + 1次.移动i循环语句的增量确实没有意义.不要混淆/阻碍opitimizers.
| 归档时间: |
|
| 查看次数: |
10491 次 |
| 最近记录: |