IListSource不包含任何数据源

zhuxiaoqian 2007-01-27 07:50:13
我碰到一个奇怪的问题:我做了一段更新,数据库里的确也更新了,可就是应用程序报错,按道理如果我代码写错了,数据库是不会更新的,可现在它的确更新了,这个问题让我很郁闷,谁能帮帮我?
(我更新的代码):
private void dg1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string strName;
strName = dg1.DataKeys[(int)e.Item.ItemIndex].ToString();

TextBox txtName = (TextBox)e.Item.FindControl("txtName");
DropDownList dropCity = (DropDownList)e.Item.FindControl("dropCity");
//string txtCity = ((System.Web.UI.WebControls.TextBox)e.Item.Cells[2].Controls[0]).Text;
TextBox txtAddress = (TextBox)e.Item.FindControl("txtAddress"); 
TextBox txtPost = (TextBox)e.Item.FindControl("txtPost");
TextBox txtPhone = (TextBox)e.Item.FindControl("txtPhone");
string dsn;
dsn = System.Configuration.ConfigurationSettings.AppSettings["DSN"];
SqlConnection conn = new SqlConnection(dsn);
SqlDataAdapter da = new SqlDataAdapter("update1_sp",conn);
SqlCommand comm = da.SelectCommand;
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add("@Name",SqlDbType.NVarChar).Value = txtName.Text;
comm.Parameters.Add("@City",SqlDbType.NVarChar).Value = dropCity.SelectedValue;
comm.Parameters.Add("@Address",SqlDbType.Text).Value = txtAddress.Text;
comm.Parameters.Add("@Post",SqlDbType.VarChar).Value = txtPost.Text;
comm.Parameters.Add("@Phone",SqlDbType.VarChar).Value = txtPhone.Text;
comm.Parameters.Add("@ID",SqlDbType.Int).Value = strName;
//comm.Parameters.Add("@NickName",SqlDbType.NVarChar).Value = lblGreeting1.Text;
conn.Open();
DataSet ds = new DataSet();
da.Fill(ds);
dg1.DataSource = ds;
dg1.DataBind();
conn.Close();
dg1.EditItemIndex = -1;
select1();
}

(我的存储过程):

CREATE proc update1_sp
@Name nvarchar(4),
@City nvarchar(12),
@Address text,
@Post varchar(6),
@Phone varchar(13),
@ID int
--@NickName nvarchar(50)
as
update Product set Name=@Name,Address=@Address,Post=@Post,Phone=@Phone
where ID=@ID
GO

???
...全文
1692 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaowen_ly 2012-08-17
  • 打赏
  • 举报
回复
可能是回发的时候报错,你在Page_Load的入口处加断点看看
GuHaiZhiRuo 2012-08-17
  • 打赏
  • 举报
回复
select 就没问题
insert,delete,update有问题是因为他们本来就是执行之后没有数据返回的
用完insert,delete,update加上一个;再加一个select语句就行了.
GuHaiZhiRuo 2012-08-17
  • 打赏
  • 举报
回复
select 就没问题
insert,delete,update有问题是因为他们本来就是执行之后没有数据返回的
用完insert,delete,update加上一个;再加一个select语句就行了.
wb6940940 2009-01-19
  • 打赏
  • 举报
回复
数据源内没有数据。。就是说你的数据库里面没有找到满足条件的数据
woshidzh2006 2008-08-09
  • 打赏
  • 举报
回复
我现在也遇到了这个什么问题了
IListSource 不包含任何数据源。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: IListSource 不包含任何数据源。

源错误:


行 165: sda.Fill(dt);
行 166: GridView1.DataSource = dt;
行 167: GridView1.DataBind();
行 168: conn.Close();
行 169: }


郁闷,但我可以肯定不是DataSet问题,我另一个存储过程完全一样的代码绑定实现就不报错!郁闷~
zhuxiaoqian 2007-01-27
  • 打赏
  • 举报
回复
前面忘说,select1是这么个方法:
private void select1()
{
string dsn;
dsn = System.Configuration.ConfigurationSettings.AppSettings["DSN"];
SqlConnection conn = new SqlConnection(dsn);
SqlDataAdapter da = new SqlDataAdapter("selectProduct1_sp",conn);
SqlCommand comm = da.SelectCommand;
comm.CommandType = CommandType.StoredProcedure;
comm.Parameters.Add("@Name",SqlDbType.NVarChar).Value = lblGreeting1.Text;
conn.Open();
DataSet ds = new DataSet();
da.Fill(ds);
dg1.DataSource = ds;
dg1.DataBind();
conn.Close();
}
zhuxiaoqian 2007-01-27
  • 打赏
  • 举报
回复
难道说用DataSet不能用存储过程吗?请教一下上面的问题!谢谢!
zhuxiaoqian 2007-01-27
  • 打赏
  • 举报
回复
我就是碰到上面的问题:IListSource不包含任何数据源
谁能帮帮我,谢谢!

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧