c#操作SQL Server入门总结

我是一名c#新手。本文只是我是常学习的随笔。

一、下载SQL server软件

听说下载开发板是最好的(开发板如果只是用来学习、研究不算是侵权)。在安装的时候,我也遇到了很多问题,在公司的电脑安装第一遍的时候,竟然没有安装MSSMS(Microsoft Sql Server Manager Studio),于是又安装了一遍才得以成功。于是以windows身份验证顺利链接了数据库服务器。但是回到家中,用家中的笔记本连续装了一周才搞定。(每次安装完,都无法连接到数据库引擎),是什么原因,好像是我sa帐号也在安装的时候填写了。

二、新建数据库以及表

1、新建一个名为db_19的数据库;2、在数据库中新建表

三、C#对Sql Server的各种操作

1、引入命名空间

 System.Data;  System.Data.SqlClient;

2、定义连接字符串,并建立连接对象

//sql server 身份验证 连接字符串 private string ConnstrSqlServer = "server=服务器名称;uid=登录名称;pwd=登录密码;database=数据库名称";

//windows 身份验证连接字符串 private string ConnstrWindows = "server=服务器名称;database=数据库名称;Trusted_Connection=SSPI";

其中,server是指数据库所在的机器(服务器),如果使用当前机器(本地机器)的话,可 以使用“.”、“(local)”、“127.0.0.1”或本地机器的名字。如果使用其它机器上的数据库的话,可以使用那台机器的机器名字(确保域和工 作组的正确)或IP地址。database指的数据库的名字。uid和pwd分别代表连接数据库的用户名和密码。

建立连接对象使用以下两条语句:

string connString = @"Data Source = LS--20180714CSF\SQL2018; Initial Catalog = db_19; Integrated Security = True";
SqlConnection conn = new SqlConnection(connString);

3、打开数据库连接

            try
            {
                conn.Open();
                MessageBox.Show("数据库链接成功","系统消息");
            }
            catch
            {
                MessageBox.Show("链接数据库失败", "系统消息");
            }

4、command命令对象的应用

Command用于向数据库传输的命令的对象,其构造函数常用两个参数,一个参数是所使用的 命令文本(CommandText),另一个为所使用的连接对象Connection。

假设我们想使用SqlClient模式查询Sql Server中db_19数据库中Table_1表中的xh(学号)、xm(姓名)和xb(性别)三列的值,则可以建立如下的命令对象(sConn参见建立的连接sConn:

SqlCommand sCmd = new SqlCommand("SELECT xh,xm,xb FROM Table_1",sConn);

亦可使用如下的形式:

SqlCommand sCmd = new SqlCommand();

sCmd.CommandText = "SELECT xh,xm,xb FROM student";

sCmd.Connection = sConn; 

命令对象常用的有三个方法:ExecuteReader(), ExecuteNonQuery()和ExecuteScalar()。ExecuteReader方法用于返回查询结果的全部数据。 ExecuteNonQuery方法用于返回所影响的行数,一般用于Insert、Update和Delete操作。ExecuteScalar方法返回 结果中的第一行第一列的值。

//定义命令对象sCmd
 SqlCommand sCmd = new SqlCommand(sql, conn);

5、数据读取器DataReader

数据读取器应与命令对象配合使用,下面接着4中的例子来写:

  SqlDataReader sdr = null;
       sdr = sCmd.ExecuteReader();     //执行命令对象,并用sdr指向结果集的第一条记录。
       while(sdr.Read())   //每读取一条记录后,指向其下一条记录
       {
            Console.WriteLine("学号:{0},姓名:{1},性别:{2}",sdr[0],sdr[1],sdr[2]);  
       } 
       sdr.Close();      //关闭读取器

       //定义数据读取器sdr
            SqlDataReader sdr = null;
            //执行命令对象sCmd并赋值给sdr
            sdr = sCmd.ExecuteReader();
            //循环输出sdr中的内容
            while (sdr.Read())
            {
                string sdrStirng = sdr["xh"] + " " + sdr["xm"] + sdr["xb"] + "\r\n";
                textBox1.AppendText(sdrStirng);
            }
            //关闭数据读取器
            sdr.Close();
            //关闭数据库连接
            conn.Close();

C#批量向SQL Server插入数据

        private void button1_Click(object sender, EventArgs e)
        {
            string connString = @"Data Source = LS--20180714CSF\SQL2018; Initial Catalog = db_19; Integrated Security = True";
            DataTable dt = new DataTable();
            dt.Columns.Add("编号", typeof(int));
            dt.Columns.Add("xh", typeof(int));
            dt.Columns.Add("xm", typeof(int));
            dt.Columns.Add("xb", typeof(int));

            Stopwatch sw = new Stopwatch();
            sw.Start();

            for (int i = 0; i <= 100; i++)
            {
                dt.Rows.Add(i,  i, i, i);
            }
            //using (SqlConnection conn = new SqlConnection(SqlHelper.Connstr))
            using (SqlConnection conn = new SqlConnection(connString))
            {
                SqlBulkCopy bulkCopy = new SqlBulkCopy(conn);
                bulkCopy.DestinationTableName = "Table_1";
                bulkCopy.BatchSize = dt.Rows.Count;
                conn.Open();
                if (dt != null && dt.Rows.Count != 0)
                {
                    bulkCopy.WriteToServer(dt);
                }
            }

            sw.Stop();
            TimeSpan ts = sw.Elapsed;
            MessageBox.Show("向数据表Table_1批量添加数据成功!","系统消息");
        }

 

转载于:https://www.cnblogs.com/Hlg-Blogs/p/10282299.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值