注册 登录
编程论坛 ASP.NET技术论坛

[求助]DataGrid无法显示数据的问题。。。C#语句[已解决!!]

南瓜骑士 发布于 2007-05-08 19:11, 2350 次点击
我用一个DataGrid控件DataGrid1想要显示数据库03075411中的一个表goods,但是,页面却是空白一片。
我的数据库表里是有数据的,在web.config数据库连接词句如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="dsn" value="user id=sa ;password=;server=(local);DATABASE=03075411"/>
</appSettings>
<system.web>


和显示数据相关的C#语句如下:
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack) BindGrid();
}
public void BindGrid()
{
string strconn= ConfigurationSettings.AppSettings["dsn"];//从文件Web.config中读取连接字符串

SqlConnection cn= new SqlConnection (strconn);
SqlDataAdapter da=new SqlDataAdapter ("GoodsList",cn);//创建SqlDataAdapter对象,调用存储过程


DataSet ds=new DataSet ();
da.Fill (ds);
DataGrid1.DataSource =ds;
DataGrid1.DataBind ();
cn.Close ();
}
存储过程GoodsList如下:
CREATE PROCEDURE [GoodsList]
AS SELECT [dbo].[Goods].[GoodID],
[dbo].[Goods].[GoodName],
[dbo].[Goods].[GoodPrice],
[dbo].[Goods].[GoodProvider],
[dbo].[Goods].[GoodDescribe]
FROM [dbo].[Goods]
GO

DataGrid的部分HTML代码如下:
<Columns>
<asp:BoundColumn DataField="goodid" HeaderText="编号"></asp:BoundColumn>
<asp:BoundColumn DataField="goodname" HeaderText="名称"></asp:BoundColumn>
<asp:BoundColumn DataField="goodprice" HeaderText="价格"></asp:BoundColumn>
<asp:BoundColumn DataField="goodprovider" HeaderText="供应商"></asp:BoundColumn>
<asp:HyperLinkColumn DataNavigateUrlField="GoodID" DataNavigateUrlFormatString="goodChange.aspx?gid={0}"
DataTextField="GoodID" HeaderText="修改" DataTextFormatString="详单"></asp:HyperLinkColumn>
<asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
</Columns>

我不知道哪里出问题了。。因为我是用了几个的DataGrid,显示同一个数据库里的不同的表,但是有的可以显示有的就是空白一片。难道是数据绑定的缘故。。?
我是一个新手,也不知道问题叙述得清楚与否,但是的确困扰了我好几天了。也许只是一个小问题||||今天决定鼓起勇气来麻烦各位。。。
如果哪位大人能够帮忙。。
小女子在这里先谢谢大家了。。。。OTZ


[此贴子已经被作者于2007-5-10 16:52:23编辑过]

10 回复
#2
从小到大2007-05-08 21:27
好像没有 CN.Open()哦
#3
南瓜骑士2007-05-09 11:41

我去这样加了一下。。。
没有效果T T。。还是白板OTZ

string strconn= ConfigurationSettings.AppSettings["dsn"];//从文件Web.config中读取连接字符串
SqlConnection cn= new SqlConnection (strconn);
cn.open();

SqlDataAdapter da=new SqlDataAdapter ("GoodsList",cn);//创建SqlDataAdapter对象,调用存储过程

#4
小笨笨2007-05-09 12:27

DataGrid1.DataSource =ds; ??

DataGrid1.DataSource =ds.Tables[0].DefaultView;才对

#5
cyyu_ryh2007-05-09 12:40
string strconn= ConfigurationSettings.AppSettings["dsn"];//从文件Web.config中读取连接字符串
完整吗?
#6
bygg2007-05-09 13:11
DataGrid1.DataSource =ds;
这种也行,只是没有 DataGrid1.DataSource =ds.Tables[0].DefaultView;访问的速度快.
#7
beniao2007-05-09 18:56

楼主,建议你先不用存储过程,先用select * from tables语句来试下看是否有记录,
如果在换过去试 ,逐步调试一下看那里出问题``
在程序中加如try ...catch...finally来抓住错误.
如果还有问题的话在联系我

#8
南瓜骑士2007-05-10 16:50
回复:(beniao)楼主,建议你先不用存储过程,先用sele...

谢谢楼上各位OTZ
原因找到了。。。。。。。
是我不小心把下面这段东西删除了哈哈哈哈||||||||
OTZ||||||||||||
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

#9
tel19822007-05-10 18:23
做程序需要非常细心呀看来。
#10
beniao2007-05-11 20:20
那是当然咯`
#11
狼心也碎2007-05-14 17:15
不用try怎么找问题啊
1