zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    Python 6 socket编程
    Python 5 面向对象进阶
    Python 4 面向对象
    Python 3 常用模块
    Python基础 2
    Python基础 1
    Django之会议室预预订
    vscode 修改快捷键 (回到上一处光标位置,下一处光标位置)
    C 库函数
    C 库函数
  • 原文地址:https://www.cnblogs.com/qixi233/p/4766451.html
Copyright © 2011-2022 走看看