VisualStudio2013內置SQLServer入門


最近做項目老大要求用到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

完結撒花~如果有神馬意見建議歡迎留言謝謝~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM