WPF连接SQL数据库

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_34328764/article/details/71177631

这几天一直在写数据库的课程设计,中间要用到C#连接SQL service数据库,找了好多资料,感觉有点乱,其实最基础的数据库操作无非就是数据库的插入与查询,在这里暂且记下,以备后用。

1.数据库查询操作

首先是数据库部分,在这里不做赘述,首先要建立一个测试用的数据库,建立几张表,最麻烦的是数据库的登录名创建上,容易出各种错=_=,不过仔细调几遍就好了,其实常见错误就是服务没有启动之类的,在网上搜索错误代号就OK了,下面进入正题,在例子里,首先是在数据库中查询到符合的数据,然后再保存到WPF程序中的一个DataGrid中。

首先是引用上,要写上两个引用:

using System.Data;
using System.Data.SqlClient;


就是这样子。

然后第二步是创建连接数据库对象,在例子里,我直接在一个button的click事件里面写了(比较偷懒,但是都差不多,你可以把这些代码放在你要用的地方);

上代码:

       private void button_Click(object sender, RoutedEventArgs e)
        {
            string con = "Server=.;Database=DatabaseDesign;user id=sa;pwd=1996";  //这里是保存连接数据库的字符串
            string sql = "select * from Thesis where TType='txt'";                //SQL查询语句

            SqlConnection mycon = new SqlConnection(con);                        //创建SQL连接对象

            mycon.Open();                                                        //打开
            SqlDataAdapter myda = new SqlDataAdapter(sql, con);                  //实例化SqlDtatAdapter并执行SQL语句,至于什么是SQLDataAdapter,
                                                                                 //就是用来连接DataSet与数据库的,DataSet是C#中用来保存数据库数据的,
                                                                                 //在这里没有用DataSet,不过原理是一样的,SQLDataAdapter从数据库中取得数据
                                                                                 //然后再DataSet中创建列与行来填充,个人理解。
            DataTable dt = new DataTable();                                     //创建DtatTable实例
            myda.Fill(dt);                                                      //填充table
            dataGrid.ItemsSource = dt.DefaultView;                              //这里在WPF界面中拖拽一个DataGrid,然后用DataTable进行填充。

        }

然后运行就可以了,在这里我是用的WPF页面,运行如下:

 

2.在数据库中插入数据

其实作为最基础的内容,语句都差不多,只有细微的变化。

       private void button1_Click(object sender, RoutedEventArgs e)
        {
            string str1 = txtTitle.Text;
            string str2 = txtAuthor.Text;                                    //获取文本框中的数据

            string con = "Server=.;Database=DatabaseDesign;user id=sa;pwd=1996";
            string sql = "insert into Thesis(TName, TAuthor) values('" + str1 + "','" + str2 + "')";

            SqlConnection mycon = new SqlConnection(con);                       //这部分与上面的查询操作是一样的
            mycon.Open();
            try                                                                //注意写在try-catch语句,要不然估计没法运行=_=
            {
                SqlCommand sqlman = new SqlCommand(sql, mycon);                 //这里的SqlCommand表示要进行一次数据库的操作
                if (sqlman.ExecuteNonQuery() != 0)                              //执行数据库语句并返回一个int值(受影响的行数)
                {
                    MessageBox.Show("插入数据成功!");
                }
            }
            catch (Exception)
            {
                MessageBox.Show("插入数据错误!");
            }
           
        }

 

可以看到数据库中插入了这条信息。

 

 

这里还牵扯到一个问题,估计都对SqlCommand与SqlAdapter有点疑惑吧,这两个都是做什么的,简单说,前者是执行数据库语句的老大哥,几乎所有的数据库操作都要用打这个,毕竟老大哥精力有限,所以不可能每件事都做得很出色,但是后者就要专业很多了,它强化了一部分功能,就像上面的例子中,我们获取到了数据库中的数据,而且还填充到了table中,具体的区别还有很多,也有很多dalao的博客写到了这个问题。这里就不细说了。
嗯,就酱~  <( ̄︶ ̄)↗[GO!]

展开阅读全文

没有更多推荐了,返回首页