根據數據提供程序不同,DataReader可分為SqlDataReader,OleDbDataReader,OlbeDataReader和OracleDataReader等4大類 一個巧妙的比喻:如果數據庫是水庫,那么SqlConnection是進水頭,SqlCommand是抽水機,SqlDataReader是出水的水管,SqlDataReader每次只能讀取一條
根據數據提供程序不同,DataReader可分為SqlDataReader,OleDbDataReader,OlbeDataReader和OracleDataReader等4大類
一個巧妙的比喻:如果數據庫是水庫,那么SqlConnection是進水笼頭,SqlCommand是抽水機,SqlDataReader是出水的水管,SqlDataReader每次只能讀取一條記錄,每當SqlDataReader調用Read方法就會從數據庫得到一條記錄,同時Read方法會返回False值,可以使用Wihle循環來調用SqlDataReader的Read方法,讀取數據庫中的記錄,SqlDataReader的工作方式意味著,在讀取數據庫的時候要保持與數據庫的連接,如果此時斷開連接,數據會讀取失敗.
對于SqlCommand對象調用ExecuteScalar方法來查詢表中記錄的數量,SqlCommand對象調用ExecuteDataReader方法,查詢表中所有的記錄
源代碼:
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SQLTest { class Program { static void Main(string[] args) { ///連接數據庫 string connection = "server=潘尚\\SQLEXPRESS;database=db_test;Trusted_Connection=true"; SqlConnection sc = new SqlConnection(connection); // sc.ConnectionString = connection; try { sc.Open(); //打開數據庫連接 Console.WriteLine("已經打開數據庫連接!"); SqlCommand cmd = new SqlCommand("SELECT * FROM db_student", sc); SqlDataReader sdr = cmd.ExecuteReader(); //執行查找記錄命令 while(sdr.Read()) { Console.WriteLine("{0}{1}{2}{3}", sdr[0], sdr[1], sdr[2], sdr[3]); } //START:4.查詢數據庫記錄////////////////////////////////////////////////////////////// /* SqlCommand cmd = new SqlCommand("SELECT count(*) FROM db_student", sc); int i = (int)cmd.ExecuteScalar();//執行查找記錄的命令 Console.WriteLine("表中共有{0}條數據", i.ToString()); */ //END:4.查詢數據庫記錄//////////////////////////////////////////////////////////////// //START:3.修改數據庫數據的代碼//////////////////////////////////////////////////////// /* SqlCommand cmd = new SqlCommand("UPDATE db_student SET student_grade=99 where student_name=@name", sc); //創建SqlCommand對象 cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = "潘"; int i = cmd.ExecuteNonQuery(); if (i > 0) Console.WriteLine("修改成功!"); */ //END:3.修改數據庫數據的代碼///////////////////////////////////////////////////////// //START:1.刪除數據庫記錄代碼段/////////////////////////////////////////////////////// /* string cmdtext = "DELETE FROM db_student WHERE student_name=@name"; SqlCommand cmd = new SqlCommand(cmdtext, sc); cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = "潘"; int i = cmd.ExecuteNonQuery(); if (i > 0) Console.WriteLine("刪除記錄成功!"); */ //END:1.刪除數據庫記錄代碼段///////////////////////////////////////////////////////// //START:2.添加記錄的代碼/////////////////////////////////////////////////////////////// /* SqlCommand cmd = new SqlCommand();//創建SqlCommand對象 cmd.CommandType = CommandType.Text; //設置執行文本命令 cmd.Connection = sc; //設置對象屬性 cmd.CommandText = "INSERT INTO db_student(student_name,student_age,student_address,student_grade)VALUES(@name,@age,@address,@grade)"; //添加參數并為參數賦值 cmd.Parameters.Add("@name", SqlDbType.VarChar, 10).Value = "潘"; cmd.Parameters.Add("@age", SqlDbType.Int).Value = 19; cmd.Parameters.Add("@address", SqlDbType.VarChar).Value = "武漢"; cmd.Parameters.Add("@grade", SqlDbType.Int).Value = 100; int i = cmd.ExecuteNonQuery(); //執行數據庫添加記錄命令 if (i > 0) Console.WriteLine("添加記錄成功"); */ //控制臺
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com