欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

SQL Server中的查詢

系統 1902 0


? ? ? 本博文簡介一下SQL Server中經常使用的幾類查詢及相關使用的方法。

? ? ? 一、ExecuteScalar方法獲取單一值

? ? ?? ExecuteScalar方法是SqlCommand類的方法之中的一個,運行查詢,并返回查詢所返回的結果集中的第一行第一列。

? ? ??

          class Program
    {
        static void Main(string[] args)
        {   

            string strCon = "Data Source=192.168.24.193;Initial Catalog=charge_sys;User ID=sa;Password=123456";
            using (SqlConnection con = new SqlConnection(strCon))//使用連接池,使用完后自己主動關閉連接
            {
                using (SqlCommand cmd = con.CreateCommand())
                {
                    string sql = "select count(*) from User_Info";//定義sql語句,查詢整個表的行數
                    cmd.CommandText = sql;
                    con.Open();
                    int count = Int32.Parse(cmd.ExecuteScalar().ToString());                                                                                                                //返回整個結果集的首行首列,是一個Object類型
                    Console.WriteLine(count);

                    cmd.CommandText = "select * from User_Info";//定義sql語句
                    string s = cmd.ExecuteScalar().ToString();                                                                                                                            //返回整個User_Info表的第一行并賦給字符串s
                    Console.WriteLine(s);//將結果打印輸出
                    Console.ReadLine();
                }
            }
        }
    
? ? ? 運行結果例如以下圖:

? ? ?? SQL Server中的查詢

? ? ? 二、ExecuteNonQuery方法運行增刪改操作

? ? ?? ExecuteNonQuery方法也是SqlCommand的方法之中的一個,對連接運行T-SQL語句并返回受影響的行數。舉例:

? ? ??

      static void Main(string[] args)
        {   

            string strCon = "Data Source=192.168.24.193;Initial Catalog=charge_sys;User ID=sa;Password=123456";
            using (SqlConnection con = new SqlConnection(strCon))//使用連接池,使用完后自己主動關閉連接
            {
                using (SqlCommand cmd = con.CreateCommand())
                {

                    ///數據操作語言,增刪改查
                    string ins = "insert into User_Info (userID) values ('123')";                 

                    con.Open();//連接數據庫
                    cmd.CommandText = ins;
                    int res = cmd.ExecuteNonQuery(); //運行SQL語句返回受影響的行數
                    if (res > 0)
                    {
                        Console.WriteLine("成功插入" + res + "條記錄");
                    }
                    else
                    {
                        Console.WriteLine("插入失敗");
                    }
                    Console.ReadLine();
                }
            }
        }
    
? ? ? 運行結果例如以下圖:

? ? ?? SQL Server中的查詢

? ? ? 三、BeginExecuteReader()和EndExecuteReader()異步查詢大結果集

? ? ? 所謂 異步查詢大結果集,就是假設數據量很大,那么在開始運行查詢和結束查詢這一過程中可能會須要耗費一段時間,在這段時間我們也能夠讓我們的程序去干一些別的事,就有了上述兩種方法。舉例:

? ? ??

              static void Main(string[] args)
        {   

            string strCon = "Data Source=192.168.24.193;Initial Catalog=charge_sys;User ID=sa;Password=123456";
            using (SqlConnection con = new SqlConnection(strCon))//使用連接池,使用完后自己主動關閉連接
            {
                using (SqlCommand cmd = con.CreateCommand())
                {
                    
                    //異步查詢大結果集
                    cmd.CommandText = "waitfor delay '00:00:05' ;select * from User_Info";  //延遲5秒連接數據庫
                    con.Open();
                    IAsyncResult  iar=cmd.BeginExecuteReader();  
                    //BeignExecuteReader方法推斷異步查詢是否完畢

                    //此處能夠寫入其它數據庫操作

                    SqlDataReader  sdr=  cmd.EndExecuteReader(iar); 
                    //EndExecuteReader方法結束連接,并把數據存儲到數據集中
                    while (sdr.Read())
                    {
                        Console.WriteLine(sdr[0]+"    "+sdr[1]);
                    }               
                    Console.ReadLine();
                }
            }
        }
    
? ? ? 因為延遲了5秒中,所以輸出結果在5秒以后才出現例如以下:

? ? ??

? ? ? 四、運行批量查詢操作

? ? ? 一般我們在用SQL語句查詢時僅僅是查詢到一條記錄,那么怎樣在一個表中同一時候插入或者更新多條記錄呢,這就用到了多天T-SQL語句。舉例:

? ? ??

          class Program
    {
        static void Main(string[] args)
        {   

            string strCon = "Data Source=192.168.24.193;Initial Catalog=charge_sys;User ID=sa;Password=123456";
            using (SqlConnection con = new SqlConnection(strCon))//使用連接池,使用完后自己主動關閉連接
            {
                using (SqlCommand cmd = con.CreateCommand())
                {
                    
                    //運行批量操作查詢,同一時候運行多條SQL語句
                    
                    string sql = "update User_Info set UserName  ='888' where userID ='2'"
                        + "update User_Info set UserName  ='999' where userID ='3'";
                    //將兩條T-SQL語句連接

                    con.Open();//打開數據庫
                    cmd.CommandText = sql;
                    int res = cmd.ExecuteNonQuery(); //運行SQL語句返回受影響的行數
                    if (res > 0)
                    {
                        Console.WriteLine("成功插入" + res + "條記錄");
                    }
                    else
                    {
                        Console.WriteLine("插入失敗");
                    }
                    Console.ReadLine();
                }
            }
        }
    
? ? ? 運行結果例如以下:

? ? ?? SQL Server中的查詢

? ? ? 五、參數化查詢

? ? ? 我們在剛開始學習在應用程序中編寫SQL語句時,一般使用拼接字符串,單引號、雙引號什么都有,編寫起來非常不方便,并且easy被SQL注入破壞敏感數據,既不安全,由此我們引入了參數化查詢,顧名思義,就是將要查詢的內容用參數取代。看以下的樣例:

? ? ??

      <span style="font-family:Times New Roman;">static void Main(string[] args)
        {
            string conStr = "Data Source=192.168.24.193;Initial Catalog=charge_sys;User ID=sa;Password=123456";
            using (SqlConnection con = new SqlConnection(conStr))
            {
               
                using (SqlCommand cmd = con.CreateCommand())
                {
                    cmd.CommandText  = "select * from User_Info where userID=@userid";
                    //第一種方法
                    //SqlParameter param = new SqlParameter();
                    //param.ParameterName = "username";
                    //param.SqlDbType = SqlDbType.Char;
                    //param.Size = 10;
                    //param.Value = "admin";
                    //con.Open();

                    //另外一種方法,直接使用AddWithValue方法直接給參數賦值

                    cmd.Parameters.AddWithValue("@userid", '1');
                    con.Open();
                    SqlDataReader sdr = cmd.ExecuteReader();
                    while(sdr.Read())
                    {
                        Console.WriteLine(sdr[0]+"   "+sdr[1]);
                    }
                    Console.ReadLine();
                }
            }
        }

</span>
    

? ? ? 六、MuHipleActiveResultSet方法運行多活動結果集

? ? ?一般一個Connection對象僅僅支持一個活動操作,假設我們須要加入另外一個或其它的或,在SQL連接語句后加上 MuHipleActiveResultSet=True就可以。這里就不在演示了,希望本博文能給您帶來一些幫助。



? ? ??

? ? ??

SQL Server中的查詢


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美一做特黄毛片 | 韩日美无码精品无码 | 免费观看黄的小视频 | 奇米奇米| 奇米网在线观看 | 国产成人亚洲毛片 | 久久久91精品国产一区二区三区 | 欧美精品午夜 | 欧美手机看片 | 5060午夜网 | 免费网站色 | 操久久久| 日本不卡在线一区二区三区视频 | 激情五月在线 | 国产精品美乳一区二区免费 | 91嫩草国产线免费观看 | 欧美色专区 | 精品国产18久久久久久二百 | 欧美特一级片 | 亚洲欧美色欧另类欧 | 久草手机视频在线 | 啪啪在线| 伊人二本二区 | 北条麻妃国产九九九精品小说 | 久热香蕉精品视频在线播放 | 91精品国产日韩91久久久久久 | 在线播放日本爽快片 | 久久亚洲一区二区 | 国产精品高清在线观看 | 好看的91视频 | 亚洲艳情网站 | 美国av片在线观看 | 一级黄色片子 | 国产精品亚洲成在人线 | 国产二区三区毛片 | 999久久久| 成人小视频在线观看 | 日日拍夜夜嗷嗷叫视频 | 欧一区二区 | 国产综合精品久久亚洲 | 中文字幕一区在线观看视频 |