日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

c#操作mysql 执行语句_c# 数据库编程(通过SqlCommand 执行DML语句)

發布時間:2024/4/18 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#操作mysql 执行语句_c# 数据库编程(通过SqlCommand 执行DML语句) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原來一直是java,python等語言,最近用c#語言,并編寫數據庫訪問代碼。使用了之后,這里總結下,分享下c#如何操作數據庫。

在java等其它語言中,有一套標準的api來完成數據庫訪問,并且一般都是通過sql語句來訪問的。而在c#中,提供了多種靈活的方式。

大致可以分為:

1)和其它語言一樣,直接利用sql命令(包括存儲過程)操作數據庫

2)利用sql語句,同時結合DataSet、DataAdapter等Api,提高使用的效率

3)與gui程序結合,與DataGridView等可視化組件結合。

本文介紹第一種方式。對于第一種方式,主要分為更新語句和查詢語句,需要考慮的有:

1)單條和批量更新語句的執行

2)參數綁定

3)事務處理

.........

下面我們按照常用的使用場景一 一來介紹。

一、更新操作(單條語句)

直接上代碼

usingSystem;usingSystem.Data;usingSystem.Data.SqlClient;namespaceDbExample

{classDbActor

{public voidupdateDb()

{

SqlConnection conn=getConnection();try{

conn.Open();

SqlCommand command= new SqlCommand("insert userinfo values('aaa','bb')", conn);int re =command.ExecuteNonQuery();if (re == 1)

{

System.Console.WriteLine("inset success");

}else{

System.Console.WriteLine("inset error");

}

}catch(Exception ex)

{

System.Console.WriteLine(ex.Message);

}finally{

conn.Close();

}

}privateSqlConnection getConnection()

{string strConnection = @"Data Source = localhost\SQLEXPRESS; Initial Catalog = mydb; User Id = sa; Password = 12345678;";

SqlConnection conn= newSqlConnection(strConnection);returnconn;

}

}

}

需要注意幾點:

1)數據庫鏈接是資源,使用完需要釋放。這在所有其它語言的數據庫訪問中都是這樣的。

2)c#比較討厭的是,它針對不同的數據庫,有不同的數據訪問對象(類名不同,所在的命名空間不同),這里的api都是Sqlxxxxx,以Sql打頭的api是訪問sql server數據庫的api。這點在使用時需要注意。

3)ExecuteNonQuery 方法的返回值是執行sql命令后影響的記錄的條數。

二、參數綁定

執行sql命令,最基本的就是拼湊一個完整的sql語句執行。但更常用的做法是進行參數傳遞的方式,這樣可以有效利用數據庫的特性,提高同類sql語句(sql命令一樣,只是命令的值不同)的執行效率。舉例代碼如下:

public voidupdateDbByPara()

{

SqlConnection conn=getConnection();try{

conn.Open();

SqlCommand command= new SqlCommand("insert userinfo values(@name,@pass)", conn);

command.Parameters.Add(new SqlParameter("@name","x1"));

command.Parameters.Add(new SqlParameter("@pass", "123"));

command.ExecuteNonQuery();

}catch(Exception ex)

{

System.Console.WriteLine(ex.Message);

}finally{

conn.Close();

}

}

注意:sql語句中的? @參數名? 不能用引號括起來,否則就當作字符串值了。

三、事務

當同時執行多條dml語句時,需要考慮在一個事務中執行。下面給出一個例子:

public voidupdateDbByTrans()

{

SqlConnection conn=getConnection();

SqlTransaction trans= null;try{

conn.Open();

trans=conn.BeginTransaction();

SqlCommand command= new SqlCommand("insert userinfo values(@name,@pass)", conn,trans);

command.Parameters.Add(new SqlParameter("@name", "x5"));

command.Parameters.Add(new SqlParameter("@pass", "123"));

command.ExecuteNonQuery();

command.Parameters.Clear();

command.Parameters.Add(new SqlParameter("@name", "x4"));

command.Parameters.Add(new SqlParameter("@pass", "123"));

command.ExecuteNonQuery();

trans.Commit();

}catch(Exception ex)

{

MessageBox.Show(ex.Message);try{

trans.Rollback();

}catch{ }

}finally{

conn.Close();

}

}

上面執行了兩個sql語句,如果第一個語句成功,但第2個語句失敗,因為在一個事務中,第一個語句也不會生效。

本文介紹了如何直接利用sql語句進行數據庫的更新操作,下面的文章會接著進行數據庫查詢等操作的介紹。

總結

以上是生活随笔為你收集整理的c#操作mysql 执行语句_c# 数据库编程(通过SqlCommand 执行DML语句)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。