下面代码c#查询SQL中的数据,怎么只显示一行数据,DB表的有多行数据的

如题,有什么好的方法,谢谢!UserInfou=null;SqlConnectioncon=newSqlConnection(DBHelper.conStr);try{c... 如题,有什么好的方法,谢谢!
UserInfo u = null;
SqlConnection con = new SqlConnection(DBHelper.conStr);
try
{
con.Open();
string sql = string.Format("select * from Product where 1=1 );
SqlCommand com = new SqlCommand(sql, con);
SqlDataReader dr = com.ExecuteReader();

while (dr.Read())
{
u = new UserInfo();
DataGridViewRow row = new DataGridViewRow();
int index = this.goodsDgv.Rows.Add();
this.goodsDgv.Rows[index].Cells["proId"].Value = Convert.ToInt32(dr["proId"]);
this.goodsDgv.Rows[index].Cells["proSpec"].Value = dr["proSpec"].ToString();
this.goodsDgv.Rows[index].Cells["proManuf"].Value = dr["proManuf"].ToString();
}

catch
{
}
finally
{
}
展开
 我来答
lydx2006551139
2014-02-12 · TA获得超过138个赞
知道小有建树答主
回答量:177
采纳率:100%
帮助的人:143万
展开全部
你的方法肯定是有问题!
给你推荐一个方法 如下:
你上面写的一堆东西,不是很合理 ,一方面是不符合 3层架构的思想 ,另一个方面自己看着非常杂乱 非常不爽,建议用下3层架构, 不是说我们非得分上个3层 4层.或者N层 它是一种思想 它确实有它的可取之处, 建一个 DAL 类库 ,在该类库下 建一个DBHelper 的类 ,然后把所有增/删/改/查 的方法 全部封装在里面。
例如 下面的方法:
// 这是 执行所查询Sql语句 并将查询结果作为一个数据集返回的方法
public DataSet ExecuteQuery(string str)
{
DataSet dsResult = new DataSet();
try
{
StartDBConn();//打开数据库的方法
OracleDataAdapter OraDataAdapter = new OracleDataAdapter(str, OraConn);
OraDataAdapter.Fill(dsResult);
}
catch (Exception ex)
{
dsResult = null;
throw new Exception(ex.Message);
}
finally
{
CloseDBConn();
dsResult.Dispose();

}
return dsResult;
}
然后 在 Form_Load 或者 Page_Load的 时候
DataSet ds = tool.ExecuteQuery(l_sql);
GV_DETAIL.DataSource = ds;
GV_DETAIL.DataBind();
这样就OK了
nidetiana
2014-02-12 · 超过27用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:49.2万
展开全部
你设断点 :int index = this.goodsDgv.Rows.Add();在这里
应该是你的index错了总是被覆盖
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
楼主_回头是岸
2014-02-12 · TA获得超过724个赞
知道小有建树答主
回答量:799
采纳率:53%
帮助的人:318万
展开全部
int index = this.goodsDgv.Rows.Add(); 他返回的是什么啊 是不是覆盖了
int index = this.goodsDgv.Rows.count;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rusky_00
2014-02-12 · 超过10用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:21.2万
展开全部
你确定你的查询条件所有数据都满足么?如果只有一条满足的,就只出现一条了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2014-02-12 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7807万
展开全部
有可能是某些字段是空值,ToString()出错,具体你可以断点或者在catch里面显示错误消息看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式