这几天一直在写数据库的课程设计,中间要用到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!]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116865.html