ASP.NET学习社区ASP.NET学习区有问有答 【求助】Fill: 应当为 SourceTable 名称输入一个非空字符串。参数名: srcTable

1  /  1  页   1 跳转 查看:602

【求助】Fill: 应当为 SourceTable 名称输入一个非空字符串。参数名: srcTable

【求助】Fill: 应当为 SourceTable 名称输入一个非空字符串。参数名: srcTable

帮忙改改,谢谢了Fill: 应当为 SourceTable 名称输入一个非空字符串。参数名: srcTable 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentException: Fill: 应当为 SourceTable 名称输入一个非空字符串。参数名: srcTable

源错误:

行 33: conn.Open();行 34: DataSet ds = new DataSet();行 35: da.Fill(ds,tableName);行 36: 行 37: conn.Close();
void Page_Load(Object sender,EventArgs e)
{
if(!IsPostBack)
{
dg1.DataSource = CreateDataSource();
dg1.DataBind();
}
}
DataView CreateDataSource()
{
string c;
string selectStr ="";
string tableName ="";
if(Application["Subject"] =="英语")
{
tableName = "EnglishTest";
selectStr = "Select QuestionID,QuestionContent from EnglishTest";
}
if(Application["Subject"] =="数学")
{
tableName ="MathTest";
selectStr ="select QuestionID,QuestionContent from MathTest";
}
SqlConnection conn = new SqlConnection(connStr);
SqlDataAdapter da = new SqlDataAdapter(selectStr,conn);
conn.Open();
DataSet ds = new DataSet();
da.Fill(ds,tableName);
conn.Close();
DataView dv = ds.Tables[tableName].DefaultView;
return dv;
}
 

回复:【求助】Fill: 应当为 SourceTable 名称输入一个非空字符串。参数名: srcTabl...

代码应该没有硬伤,只不过你运行时 Application["Subject"]  的直为空,为Application["Subject"] 设置一个默认直应该就可以了

不过个人不太喜欢这样的编程风格
http://www.Aspx1.Com
请帮忙宣传Aspx1 , Aspx1是ASP.NET学习者的家园 , 适宜长期居住.
 

回复: 【求助】Fill: 应当为 SourceTable 名称输入一个非空字符串。参数名: srcTabl...

[quote] 原帖由 [b]aspx1[/b] 于 2008-3-15 18:41:00 发表
代码应该没有硬伤,只不过你运行时 Application["Subject"]  的直为空,为Application["Subject"] 设置一个默认直应该就可以了

不过个人不太喜欢这样的编程风格 [/quote]

谢谢! 还有个问题:假如让您来表达这段代码内容的话 您会怎么写呢?想请教下
 

回复: 【求助】Fill: 应当为 SourceTable 名称输入一个非空字符串。参数名: srcTabl...

晕,忘了登录了。。。变成野学生了。。。。汗~
 

回复:【求助】Fill: 应当为 SourceTable 名称输入一个非空字符串。参数名: srcTabl...

这种类型的变量应该没有必要用Application存储把。
没有容错机制(tableName 为空时最好抛出异常,数据库操作最好有个try catch)
数据库查询语句最好别直接用拼接字符串的方式,用sqlparam变量或者直接用存储过程 ,这样在效率和安全性上好点

个人意见,仅供参考
http://www.Aspx1.Com
请帮忙宣传Aspx1 , Aspx1是ASP.NET学习者的家园 , 适宜长期居住.
 

回复:【求助】Fill: 应当为 SourceTable 名称输入一个非空字符串。参数名: srcTabl...

谢谢~~受益了
 
1  /  1  页   1 跳转

版权所有 ASP.NET学习门户 2.0.1214   Sitemap  

返顶部