C#操作數據庫


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//操作SQL數據庫必須引入此包
using System.Data.SqlClient;
//使用DataSet類必須引入此包
using System.Data;
namespace ConsoleApplication1
{
    class Program
    {
        private string sqlConnectionCommand = "server=localhost;database=testDB;uid=sa;pwd=sa";//"server=localhost;database=testDB;integrated security=SSPI";//Windows驗證方式
        private string sqlSelectTable = "select id,name from table1";
        private string sqlDelCommand = "Delete From table1 Where id = 1";
        private string sqlUpdateCommand = "update table1 set name = '99' Where id = 2";



        static void Main(string[] args)
        {
            Program p1 = new Program();
            p1.testDBsetFun();
        }

        public void doSqlSelect()
        {
            SqlConnection sqlConnection = new SqlConnection(sqlConnectionCommand);
            //如果初始化構造函數不包含連接數據庫信息,則可以用創建的對象的屬性關聯連接數據庫信息
            //SqlConnection sqlConnection = new SqlConnection();
            //sqlConnection.ConnectionString = sqlConnectionCommand;

            SqlCommand sqlCommand = new SqlCommand(sqlSelectTable, sqlConnection);//建立一個接受SQL語句並可以執行返回結果的對象
            //如果初始化時沒包含要執行的SQL語句和關聯的數據庫連接則可通過創建的對象的屬性來關聯
            //SqlCommand sqlCommand = new SqlCommand();//創建一個執行SQL語句類的對象
            //sqlCommand.Connection = sqlConnection;//關聯連接數據庫對象
            //sqlCommand.CommandText = sqlSelectTable1;//關聯執行的SQL語句

            //在執行SQL語句前必須把連接打開
            sqlConnection.Open();

            //如果執行非查詢語句(更新,插入等)用SqlCommand類ExecuteNonQuery();方法來執行,返回一個int型
            //sqlCommand.ExecuteNonQuery();

            //執行查詢語句用SqlCommand類ExecuteReader();方法來執行。用SqlDataReader類對象接收執行的結果便於瀝遍
            SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();

            //開始循環瀝遍
            while (sqlDataReader.Read())
            {
                int id = (int)sqlDataReader["id"];//(int)sqlDataReader[0];//也可以根據查詢結果列的序號0為第一列
                string name = (string)sqlDataReader["name"];//(string)sqlDataReader["name"];
                Console.WriteLine("ID = " + id + " , Name = " + name);
            }
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();

            sqlDataReader.Close();
            sqlCommand.Dispose();
            sqlConnection.Close();
        }

        void testDBsetFun()
        {
            SqlConnection sqlConnection = new SqlConnection(sqlConnectionCommand);
            SqlCommand sqlCommand = new SqlCommand(sqlSelectTable, sqlConnection);
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();//建立對虛擬表進行操作的對象
            sqlDataAdapter.SelectCommand = sqlCommand;//把SqlDataAdapter關聯一個擁有查詢語句的sqlCommand對象
            sqlConnection.Open();
            DataSet dsDataSet = new DataSet();//創建虛擬表對象
            sqlDataAdapter.Fill(dsDataSet, "Customers");//用SqlDataAdapter對象把剛關聯的查詢結果賦到虛擬表中,並賦一個指定表名"Customers"(任意起)
            sqlCommand.Dispose();
            sqlConnection.Close();

            dsDataSet.Tables["Customers"].Rows[0].Delete();//指明要在指定虛擬表中刪除的索引行,表名也可換成指定表儲存在dsDataSet中的索引值
            dsDataSet.Tables["Customers"].AcceptChanges();//執行對指定虛擬表指定索引行刪除的動作(提交執行自加載此 dsDataSet 或上次調用 AcceptChanges() 以來對其進行的所有更改。)
            sqlDataAdapter.Update(dsDataSet, "Customers");//調用Update方法,以dsDataSet中指定表的數據更新數據庫對應表但是放在AcceptChanges()方法下則不執行


            int a1 = dsDataSet.Tables[0].Rows.Count;//取得指定虛擬表的總行數
            int a2 = dsDataSet.Tables["Customers"].Columns.Count;//取得指定虛擬表的總列數
            int a3 = dsDataSet.Tables.Count;//取得指定虛擬表的總列數
            string a4 = dsDataSet.Tables["Customers"].Columns[0].ToString();//取得指定虛擬表的索引為0列的列名(字段名)
            //取得指定虛擬表的指定索引行指定列的值
            string val = dsDataSet.Tables["Customers"].Rows[1]["name"].ToString();//也可通過虛擬表中該列的索引來取值//string b = dsDataSet.Tables["Customers"].Rows[1][1].ToString();
            Console.WriteLine("RowsCount = " + a1 + " , val = " + val);
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();


        }

    }
}


免責聲明!

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



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