ADO.Net學習之SqlConnection、 Sqlcommand的應用
ADO.NET 組成資料提供程式的類: Connection是用來來建立和資料庫的連線。 Command是用來執行SQL命令和儲存過程。 DataReader是與DataSet最大的不同是有連線式的,每次對資料庫進行存取都會影響到資料庫。 DataAdapter 是與DataSet配合使用的物件,用於把表填充到DataSet,和更新DataSet等。 1.Data Provider for SQL Server - System.Data.SqlClient,連線SQL Server資料庫
SqlConnection con = new SqlConnection(“data source=.; database=Sample; integrated security=SSPI”); SqlCommand cmd = new SqlCommand(“Select * from tblProduct”, con); con.Open(); SqlDataReader rdr = cmd.ExecuteReader(); GridView1.DataSource = rdr; GridView1.DataBind(); con.Close();
2.Data Provider for Oracle - System.Data.OracleClient,連線Oracle資料庫
OracleConnection con = new OracleConnection(“Oracle Database Connection String”); OracleCommand cmd = new OracleCommand(“Select * from tblProduct”, con); con.Open(); OracleDataReader rdr = cmd.ExecuteReader(); GridView1.DataSource = rdr; GridView1.DataBind(); con.Close();
3.Data Provider for OLEDB - System.Data.OleDb,連線Excel、Access 等 4.Data Provider for ODBC - System.Data.Odbc 重點內容
Sqlcommand的應用 Sqlcommand物件允許您指定在資料庫上執行的操作型別。例如,可以在資料庫中的行資料上執行SELECT、INSERT、修改和DELETE命令。SqlCommand物件可以用於支援斷開連線的資料管理,但我們將只單獨使用SqlCommand物件。Sql DataAdapter介面卡後面的過程將解釋如何使用斷開的資料來實現應用程式。 建立SqlConnection物件的兩種形式: 1、 SqlConnection connection = new SqlConnection(“data source=.; database=SampleDB; integrated security=SSPI”); 2、 SqlConnection connection = new SqlConnection(); connection.ConnectionString = “data source=.; database=SampleDB; integrated security=SSPI”;
例項 using System.Data.SqlClient; using System.Data; //定義連結 SqlConnection conn; /定義命令 SqlCommand cmd; //定義datareader SqlDataReader myreader; //定義兩個變數用來儲存資料庫連結字串和命令字串 string connstr, selectcmd; connstr = ConfigurationManager.ConnectionStrings[“FANXXConnectionString”].ToString(); selectcmd = “SELECT COUNT(*) AS Expr1 FROM TAB1TMP WHERE (COL1 = ‘” + col1 + “’) AND (COL2 = ‘” + col2 + “’)”; //例項化連結並開啟 conn = new SqlConnection(connstr); conn.Open(); //例項化cmd並制定執行語句與執行連結 cmd = new SqlCommand(selectcmd, conn); //執行查詢命令並賦給datareader //myreader = cmd.ExecuteReader(); //或者只是獲取一個單值 ,當然還有隻執行無效返回的nonquery int lv_count = cmd.ExecuteScalar().ToString(); if (myreader.Read()) { } myreader.Close(); //切記關閉連線,釋放資源 conn.Close();