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批量添加數據成功!","系統消息");
        }

 


免責聲明!

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



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