您好我正在尝试编辑名为klientTableAdapter.CommanText
的动态创建的TableAdapter
DataSet
DSSchema
- 这是使用{{1}创建报告时动态创建的}。
ReportViewer
我认为string sqlcomEvent = "SELECT akce,name,surname,rodcis,(Cast([street] as nvarchar(MAX)) + ', '+ city + ', ' + ZIP) AS Adresa, odjezd, sitting, rocnik FROM dbo.klient WHERE (event=@event";
for (int a = 0; a < CommonEvents.Count(); a++)
{
sqlcomEvent += " OR event='" + CommonEvents[a]+"'";
}
sqlcomEvent += " )AND year=@year ORDER BY SITTING";
// TODO: This line of code loads data into the 'dtourDataSet.klient' table. You can move, or remove it, as needed.
this.klientTableAdapter.Adapter.SelectCommand.CommandText = sqlcomEvent ;
this.klientTableAdapter.Fill(this.dtourDataSet.klient,zajezd,klientClass.Rocnik());
this.reportViewer1.RefreshReport();
被引发了,因为我之前没有声明过klientTableAdapter,但是当我添加这行NullReferenceException
时,我收到错误:
var klientTableAdapter = new klientTableAdapter();
有人可以帮我解决这个问题吗?
这对我来说非常合适,但我不确定是否有更聪明的方法吗?
tours.TiskSchemaDoprava.klientTableAdapter is a field; but is used like a type
答案 0 :(得分:0)
你有一个字段:
this.klientTableAdapter
它的类型与字段名称相同。所以当你说new klientTableAdapter()
时,它不知道你是否指的是字段的类型,并且因为字段是在类中定义的,它正在选择字段:并且你不能'新'领域。最简单的方法是重命名字段,让Visual Studio在任何地方使用它来重命名。或者对类型执行此操作并在前面KlientTableAdapter
给出带有大写的标准名称,以便编译器可以根据其类型消除字段的歧义。