当前位置: 代码迷 >> C# >> ,Label如何读取数据库里信息
  详细解决方案

,Label如何读取数据库里信息

热度:89   发布时间:2016-05-05 03:42:20.0
求助,Label怎么读取数据库里信息
我想从数据库里获取信息到form里的Label,但一直报错,这要怎么改,或者怎么样编写
 private void MainForm_Load(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection(" Data Source=LC-PC; database=DBContacts; Integrated Security=SSPI");
            conn.Open();
            SqlCommand cmd = new SqlCommand("select * from Student_Info" );
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                LBname.Text += dr["Name"];
                LBsex.Text += dr["Sex"];
                LBbirthday.Text += dr["Birthday"];
                LBid.Text += dr["StudentID"];
                LBqq.Text += dr["QQ"];
                LBphone.Text += dr["Phone"];
            }
            conn.Close();
            cmd.Dispose();
        }

------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

SqlCommand?cmd?=?new?SqlCommand("select?*?from?Student_Info"?,conn)

正解

你的cmd根本没和conn关联起来
编译器怎么知道你这个sql语句到底要放到哪个数据库里去执行?

现在不会报错了,但是读取的数据不是我想要的那一位,而是直接变成最后一位了,这个怎么办;例如我输入登入的是第一位人的账号,结果登入后出现的是最后一个人信息,这个怎么办

你的sql都没有where条件,怎么能确定读的是哪一位!
------解决思路----------------------
private void MainForm_Load(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection(" Data Source=LC-PC; database=DBContacts; Integrated Security=SSPI");
            conn.Open();
            SqlCommand cmd = new SqlCommand("select * from Student_Info",conn );
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                LBname.Text += dr["Name"];
                LBsex.Text += dr["Sex"];
                LBbirthday.Text += dr["Birthday"];
                LBid.Text += dr["StudentID"];
                LBqq.Text += dr["QQ"];
                LBphone.Text += dr["Phone"];
            }
            conn.Close();
            cmd.Dispose();
        }
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

看的我也是............ADO都没写对啊,第一步简历Connection对象,简历command对象也就是楼上说的cmd 第三 打开链接,执行cmd对象查询,第五 关闭连接。  感觉楼主这样直接从数据库绑定数据这是不好的习惯,可以先把数据绑定到实体,然后再给控件赋值,这样的话别的地方用到数据也很方便,而不别的地方要用,每次都从数据库查询绑定,这样的代码重复太多了。轻量级的功能,简单的东西,楼主试试用linq to sql   比写ADO简单的多了

那要怎么写,球求帮忙
这个。。。。。。你要哪个? 要linq to sql  还是ado?

与数据库连接 ,怎么才能与登入界面的账号相匹配?
这个啊,你说的是实现登录这个功能?如果是登录的话,把登录界面的帐号和密码都取出来,然后先去数据库查有没有这个用户,当然在数据库的设计上你的用户名最好是设置成唯一吧,避免用户名重复,不然处理起来就比较麻烦了。如果查到数据库里面有这个方法的用户的话,那么进行下一步,根据这个用户名从数据库取出对应的密码与你的登陆界面的密码对比,如果一样就登录成功,不一样就失败喽,不知道LZ想问的是不是这个?
------解决思路----------------------

 private void MainForm_Load(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection(" Data Source=LC-PC; database=DBContacts; Integrated Security=SSPI");
            SqlDataAdapter sda = new SqlDataAdapter("select * from Student_Info where Name=" + UserName,conn);//这里的UserName是你登录界面输入的那个值,你得想办法把登录窗体的值弄到MainForm里面。
            DataSet ds = new DataSet();
            sda.Fill(ds);
                LBname.Text  = ds.Table.Rows[0]["Name"];
                LBsex.Text =  ds.Table.Rows[0]["Sex"];
                LBbirthday.Text =  ds.Table.Rows[0]["Birthday"];
                LBid.Text =  ds.Table.Rows[0]["StudentID"];
                LBqq.Text =  ds.Table.Rows[0]["QQ"];
                LBphone.Text =  ds.Table.Rows[0]["Phone"];
        }

楼主你还得找点别人的代码好好看看,书上的基础只是也得看看
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

看的我也是............ADO都没写对啊,第一步简历Connection对象,简历command对象也就是楼上说的cmd 第三 打开链接,执行cmd对象查询,第五 关闭连接。  感觉楼主这样直接从数据库绑定数据这是不好的习惯,可以先把数据绑定到实体,然后再给控件赋值,这样的话别的地方用到数据也很方便,而不别的地方要用,每次都从数据库查询绑定,这样的代码重复太多了。轻量级的功能,简单的东西,楼主试试用linq to sql   比写ADO简单的多了

那要怎么写,球求帮忙
这个。。。。。。你要哪个? 要linq to sql  还是ado?

与数据库连接 ,怎么才能与登入界面的账号相匹配?
这个啊,你说的是实现登录这个功能?如果是登录的话,把登录界面的帐号和密码都取出来,然后先去数据库查有没有这个用户,当然在数据库的设计上你的用户名最好是设置成唯一吧,避免用户名重复,不然处理起来就比较麻烦了。如果查到数据库里面有这个方法的用户的话,那么进行下一步,根据这个用户名从数据库取出对应的密码与你的登陆界面的密码对比,如果一样就登录成功,不一样就失败喽,不知道LZ想问的是不是这个?

不不不,我的意思是我的这个主界面显示的内容是登入界面所对应的那个账号的信息,然后从数据库里读取出这账号的信息
一样的道理啊,这个就更加省事了,根据登入的账户查询对应的信息呗,看你是根据主键呢还是用户名查询,都可以的。然后填充到对应的控件就行了,就是这个思路。
------解决思路----------------------
引用:
 SqlConnection conn = new SqlConnection(" Data Source=LC-PC; database=DBContacts; Integrated Security=SSPI");
            conn.Open();
            SqlCommand cmd = new SqlCommand("select * from Student_Info",conn);
            cmd.Connection = conn;
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                LBname.Text = dr["Name"].ToString();
                LBsex.Text = dr["Sex"].ToString();
                LBbirthday.Text = dr["Birthday"].ToString();
                LBid.Text = dr["StudentID"].ToString();
                LBqq.Text = dr["QQ"].ToString();
                LBphone.Text = dr["Phone"].ToString();
            }
            conn.Close();
            cmd.Dispose();

你用了While,当然是读到最后一位人的信息了
  相关解决方案