最近做項目老大要求用到sqlserver,但是這項目的數據庫只是本地演示用並不復雜,於是決定試試VisualStudio2013內置的SQLServer。對於這個東西的了解並沒有多少,然后項目初學習的資料好少(可能是我搜索方式不對),這文章就當拋磚之作吧,話不多說現在開始:
首先我查閱了一些資料,但是很多都是sqlserver而不是vs內置的那個,所以似乎很難找到適合的資料,不過我找到了兩篇MSDN也就是微軟的簡單入門的,上鏈接:
https://msdn.microsoft.com/zh-cn/library/ms233763.aspx
https://msdn.microsoft.com/zh-cn/library/ms171890.aspx
第一篇是教用vs內置的Service-based Database 建立一個簡單的.mdf文件,這就是一個數據庫文件(Microsoft SQL Server Database File),跟着教程做,創建的過程不想mysql一樣是cmd輸入命令(我沒用過mysql的GUI),都是在GUI上操作的
第二篇是用winform去連接第一篇創建的.mdf文件,然后添加完后可以直接以控件形式顯示,但是教程就到此為止了,我要的並不是直接顯示數據啊,我需要的是在C#的WPF中實現對數據庫的增刪改查啊,就是輸入個id,從數據庫中找到個對應名字給我之類的操作,所以還要繼續找方法。
然后我找到了這篇文章:
http://wulin9005.blog.163.com/blog/static/13239748820133135526616/
作者跟我一樣懶得去下sqlserver(逃~),然后這里教會了我在vs中連接自己電腦作為server,不過第二步大家的服務器名可能不一樣,我的解決方法是:
在VS--TOOLS--Options(最下)中,搜索sql server
點Database Tools--Data Connections
SQL Server Instance Name下方的TextBox中就是你電腦Server的名字,我沒改hhh
繼續進行第三步就能得到名為"master"的數據庫,
接着就在Tables處右鍵添加新表,具體如下:
可以跟我一樣也可以參考microsoft的第一個鏈接,這樣表就創建完畢了
然后是對表添加數據,對Tables下的tb_card右鍵Show Table Data(顯示表數據),然后自由添加
好的這樣就添加完數據了
接下來就是如何在代碼中取得數據了,
首先在VS的VIEW--Other windows--Data Sources 中點擊Add new Data Source,在Choose a Data Source Type中選Database-->next,在choose a database model中選擇Dataset-->next,在Choose Your Data Connection中點擊右邊的New Connection,在彈出的Add Connection中點擊Data source右邊的按鍵change,然后選中Microsoft SQL Server並點擊OK:
然后會有add Connection彈框如下,ServerName上面提到了用自己的,輸入完可以用左下角的Test試一下連接:
成功之后就會回到choose your data connection,然后下拉框就多了一個可以選的:
選中並next,next,到了Choose your database objects,勾選tables,然后Finish,剩下都確認就行
然后server的Data Connections就會出現:
連接也完成了,最后就是創建WPF
比較簡陋hhh,三個textbox分別對應cardid、username、cardType,
combobox用來選擇數據庫,右邊btn_refresh用來首次連接並刷新數據庫列表到combobox中:
#region 按鍵刷新數據庫列表 private void btn_refresh_Click(object sender, RoutedEventArgs e) { DataTable t = new System.Data.DataTable(); string con = "server=(LocalDB)\\v11.0;database=master;integrated security=true"; try { using (SqlConnection myCon = new SqlConnection(con)) { myCon.Open(); MessageBox.Show("打開數據庫成功"); string sql = "select * from sys.databases "; using (SqlCommand cm = new SqlCommand(sql, myCon)) { SqlDataAdapter a = new SqlDataAdapter(cm); a.Fill(t); foreach (DataRow r in t.Rows) { cb_database.Items.Add(r["name"].ToString()); } } } } catch (Exception ex) { MessageBox.Show("數據庫打開失敗,詳細信息:" + ex.ToString()); } } #endregion
刷新完成后,在第一個textbox輸入123,然后點擊btn_open,另外兩個textbox將會顯示對應數據,btn_open代碼如下:
#region open點擊 private void Button_Click(object sender, RoutedEventArgs e) { try { if (cb_database.Text.Trim().Length > 0) { string con = "server=(LocalDB)\\v11.0;database=" + cb_database.Text.Trim() + ";integrated security=true"; using (SqlConnection myCon = new SqlConnection(con)) { string sql = "select userName,cardType from tb_card where cardID='" + tb_id.Text + "'"; using (SqlCommand cmd = new SqlCommand(sql, myCon)) { myCon.Open(); MessageBox.Show("連接數據庫成功" + ",ServerVersion:" + myCon.ServerVersion + ";DataSource" + myCon.DataSource); using (SqlDataReader sdr = cmd.ExecuteReader()) { if (sdr.Read()) { string userName = sdr.GetString(0).ToString(); string cardType = sdr.GetString(1).ToString(); tb_name.Text = userName; tb_type.Text = cardType; } else { MessageBox.Show("gg"); } } } } } else { MessageBox.Show("請選擇要連接的數據庫"); } } catch (Exception ex) { MessageBox.Show("數據庫連接失敗,詳細信息:" + ex.ToString()); } } #endregion
完結撒花~如果有神馬意見建議歡迎留言謝謝~