A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 汪振 中级黑马   /  2013-2-27 10:17  /  2851 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有一个数据库,部分如图显示。
  1. string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
  2.              using (SqlConnection conn = new SqlConnection(constr))
  3.              {//到数据库的连接
  4.                  conn.Open();
  5.                  using (SqlCommand cmd = conn.CreateCommand())
  6.                  {//cmd
  7.                      cmd.CommandText = "select * from Sheet1 where 标示=@flag ";
  8.                      cmd.Parameters.Add(new SqlParameter("@flag",i));
  9.                      using (SqlDataReader rreader = cmd.ExecuteReader())
  10.                      {
  11. <span style="line-height: 1.5;">string bh = rreader["" + "编号" + ""].ToString();</span>
  12.                          txtDm.Text = bh;
  13.                      }
  14.                  }
  15.              }
复制代码
有一个监控cmblist选择转变的事件,我想通过选择的那个编号转换为标示数值,在读取需要的数据,不过遇到点麻烦

3.jpg (23.86 KB, 下载次数: 91)

错误提示

错误提示

2.jpg (33.33 KB, 下载次数: 90)

数据库截图

数据库截图

2 个回复

倒序浏览
  1. string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
  2. using (SqlConnection con = new SqlConnection(constr ))
  3.         {
  4.             con.Open();
  5.             using (SqlCommand cmd = con.CreateCommand())
  6.             {
  7.                 cmd.CommandText = "select * from Sheet1 where 标示=@flag ";
  8.                      cmd.Parameters.Add(new SqlParameter("@flag",i));
  9.                 using (SqlDataReader dataRead = cmd.ExecuteReader())
  10.                 {
  11.                   while (dataRead.Read())//读取查询的数据  赋值给控件txtDm
  12.                     {
  13. string bh= dataRead.GetString(dataRead.GetOrdinal("编号"));
  14.                         txtDm.Text = bh;
  15.                         
  16.                     }
  17.                        
  18.                 }
  19.             }
  20.         }
复制代码
你试试以上代码   调试看看行不行
回复 使用道具 举报
把问题说清楚点
首先不能把HTML的代码写在这里
SqlDataReader读取数据是这样的 http://bbs.itheima.com/thread-38946-1-1.html
ExecuteReader 方法
用法:ExecuteReader 方法存在的目的只有一个:尽可能快地对数据库进行查询并得到结果。ExecuteReader 返回一个DataReader对象:如果在SqlCommand对象中调用,则返回SqlDataReader;如果在OleDbCommand对象中调用,返回的是OleDbDataReader。可以调用DataReader的方法和属性迭代处理结果集。它是一个快速枚举数据库查询结果的机制,是只读、只进。对SqlDataReader.Read的每次调用都会从结果集中返回一行。

代码
using (SqlConnection con = new SqlConnection(constr))
            {
                con.Open();
                using (SqlCommand cmd = con.CreateCommand())
                {
                      cmd.CommandText="select * from message";
                      using(SqlDataReader reader=cmd.ExecuteReader())
                            {
                                while (reader.Read())\\因为ExecuteReader查询完的结果是在数据库里面的,并不是返回到客户端,所以请求ExecuteReader查询结果时,只能一行一行的向数据库服务器申                          请,当reader.Read()=true证明还有数据,当reader.Read()=false时表示上回读取的是最后一行数据
                                {
                                    string name=reader.GetString(2);
                                    MessageBox.Show(name);
                                }
                            }
                }
            }

如果你要点击list里面列中的元素来返回数据,那就要读取一个list.selectitem的值用它来作为参数传入数据库,通过SQL返回你想要的值。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马