当前位置:编程学习 > C#/ASP.NET >>

IListSource不包含任何数据源

我碰到一个奇怪的问题:我做了一段更新,数据库里的确也更新了,可就是应用程序报错,按道理如果我代码写错了,数据库是不会更新的,可现在它的确更新了,这个问题让我很郁闷,谁能帮帮我?
(我更新的代码):
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

???
--------------------编程问答-------------------- 我就是碰到上面的问题:IListSource不包含任何数据源 
谁能帮帮我,谢谢! --------------------编程问答-------------------- 难道说用DataSet不能用存储过程吗?请教一下上面的问题!谢谢! --------------------编程问答-------------------- 前面忘说,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();
} --------------------编程问答-------------------- 我现在也遇到了这个什么问题了
IListSource 不包含任何数据源。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

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

源错误: 


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


郁闷,但我可以肯定不是DataSet问题,我另一个存储过程完全一样的代码绑定实现就不报错!郁闷~ --------------------编程问答-------------------- 数据源内没有数据。。就是说你的数据库里面没有找到满足条件的数据 --------------------编程问答-------------------- select 就没问题
insert,delete,update有问题是因为他们本来就是执行之后没有数据返回的
用完insert,delete,update加上一个;再加一个select语句就行了. --------------------编程问答-------------------- select 就没问题
insert,delete,update有问题是因为他们本来就是执行之后没有数据返回的
用完insert,delete,update加上一个;再加一个select语句就行了. --------------------编程问答-------------------- 可能是回发的时候报错,你在Page_Load的入口处加断点看看
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,