我想从数据库里获取信息到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();
}
------解决思路----------------------
你的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();
}
------解决思路----------------------
这个。。。。。。你要哪个? 要linq to sql 还是ado?
看的我也是............ADO都没写对啊,第一步简历Connection对象,简历command对象也就是楼上说的cmd 第三 打开链接,执行cmd对象查询,第五 关闭连接。 感觉楼主这样直接从数据库绑定数据这是不好的习惯,可以先把数据绑定到实体,然后再给控件赋值,这样的话别的地方用到数据也很方便,而不别的地方要用,每次都从数据库查询绑定,这样的代码重复太多了。轻量级的功能,简单的东西,楼主试试用linq to sql 比写ADO简单的多了
那要怎么写,球求帮忙
与数据库连接 ,怎么才能与登入界面的账号相匹配?
------解决思路----------------------
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"];
}
楼主你还得找点别人的代码好好看看,书上的基础只是也得看看
------解决思路----------------------
这个啊,你说的是实现登录这个功能?如果是登录的话,把登录界面的帐号和密码都取出来,然后先去数据库查有没有这个用户,当然在数据库的设计上你的用户名最好是设置成唯一吧,避免用户名重复,不然处理起来就比较麻烦了。如果查到数据库里面有这个方法的用户的话,那么进行下一步,根据这个用户名从数据库取出对应的密码与你的登陆界面的密码对比,如果一样就登录成功,不一样就失败喽,不知道LZ想问的是不是这个? 这个。。。。。。你要哪个? 要linq to sql 还是ado?
看的我也是............ADO都没写对啊,第一步简历Connection对象,简历command对象也就是楼上说的cmd 第三 打开链接,执行cmd对象查询,第五 关闭连接。 感觉楼主这样直接从数据库绑定数据这是不好的习惯,可以先把数据绑定到实体,然后再给控件赋值,这样的话别的地方用到数据也很方便,而不别的地方要用,每次都从数据库查询绑定,这样的代码重复太多了。轻量级的功能,简单的东西,楼主试试用linq to sql 比写ADO简单的多了
那要怎么写,球求帮忙
与数据库连接 ,怎么才能与登入界面的账号相匹配?
不不不,我的意思是我的这个主界面显示的内容是登入界面所对应的那个账号的信息,然后从数据库里读取出这账号的信息
------解决思路----------------------
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,当然是读到最后一位人的信息了