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

完结撒花~如果有神马意见建议欢迎留言谢谢~

posted @ 2015-08-28 14:24  七喜哥哥仔  阅读(15942)  评论(1编辑  收藏  举报