笔记6:winfrom连接sql server 进行数据交换

今天的作业是用winfrom窗体做一个留言板,如图:

  笔记6:winfrom连接sql server 进行数据交换

  要求和数据库有查询和添加功能。下拉框里的值是直接获取数据库中的值

一、连接数据库,获取表中数据

         //创建一个存数据的表
DataTable table = new DataTable();
string liuyanConn = "server=.;integrated security=true;database=DataGridView";
string liuyanSql = "select UserName as 用户名 ,Content as 留言内容 from UserInfo"+  //两张表联合查询
                      +" inner join MessageInfo on MessageInfo.UserId=UserInfo.UserId";
SqlConnection sqlConn = new SqlConnection(liuyanConn);
SqlCommand sqlComm = new SqlCommand(liuyanSql, sqlConn); SqlDataAdapter da = new SqlDataAdapter(sqlComm);
da.Fill(table);
this.dataGridView1.DataSource = table;

二、获取数据库中的用户名,并赋值到下拉列表中

          //下拉菜单
string liuyanSql2 = "select * from UserInfo";
sqlConn.Open();
SqlCommand command = new SqlCommand(liuyanSql2, sqlConn);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
string name = (String)reader["UserName"];
this.comboBox1.Items.Add(name);
}
sqlConn.Close();

三、将选的留言对象和留言内容存到数据库中,然后更新界面

            //添加留言
SqlConnection sqlConn2 = new SqlConnection(liuyanConn);
sqlConn2.Open();
string liuyanSql2 = string.Format("insert into MessageInfo(Content,UserId) values ('{0}',{1})",this.textBox1.Text, id);
SqlCommand command2 = new SqlCommand(liuyanSql2, sqlConn2);
int i = command2.ExecuteNonQuery();
sqlConn2.Close();
if (i > )
{
MessageBox.Show("留言成功!");
}
xianshi();

  难点:1、将数据库中的值取出来,然后赋值到下拉列表中

     2、用户信息和留言内容不是一个表,由外键相连着

        因此需要根据表1中的用户名查询到用户编号,然后再将用户编号和留言内容存到表2中

      這就多涉及一次查询,插入

    ps:這次代码写得相当的啰嗦,慢慢再改吧

上一篇:【freemaker】之自定义指令<#macro>


下一篇:JSF 2 panelGrid example