在我的c#程序中,我有一个listview点击事件。这是我的代码:
private void factorLV_Click(object sender, EventArgs e)
{
try
{
if (listview1.SelectedItems.Count == 0)
return;
listview2.Items.Clear();
listview2.Show();
DataClasses1DataContext db = new DataClasses1DataContext();
List<ReportFactorResult> list = db.ReportFactor(Convert.ToInt32(listview1.SelectedItems[0].SubItems[0].Text)).ToList<ReportFactorResult>();
foreach (ReportFactorResult val in list)
{
ListViewItem lst = new ListViewItem((Convert.ToString(listview2.Items.Count + 1)).ToString());
lst.SubItems.Add(val.storeName);
lst.SubItems.Add(val.Code.ToString());
lst.SubItems.Add(val.factorNumber.ToString());
lst.SubItems.Add(val.salePrice.ToString());
listview2.Items.Add(lst);
}
}
catch(Exception ex)
{
messageBox.show(ex.message);
}
}
当我在visual studio中运行该程序时,它工作正常。但是当我从Visual Studio环境中运行.exe时,它遇到了这个例外:
指定的演员表无效
下图显示没有try catch的异常。当我使用try catch时,我得到了&#34;指定演员......&#34;消息。
http://i59.tinypic.com/2qkl3qg.png
此外,在visual studio我的程序远程连接到sql server管理,但在外部visual studio中我连接到SQLExpress中的Restored数据库。
答案 0 :(得分:0)
显示堆栈跟踪后,它更清楚你的问题是什么。
目前您的问题是将您的sql字段映射到ReportFactorResult
。特别是ReportFactorResult有一个int64字段,它在数据库中有不同的字段类型。
要获得进一步的帮助,我们需要查看ReportFactorResult
和您的数据库方案。但是如果你查看你的ReportFactorResult
类并搜索所有int64字段,你可能会自己找到有问题的字段。