国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
ADO.Net都有哪些從數(shù)據(jù)庫獲取數(shù)據(jù)的方式

(一).說明

       初學(xué)ADO.Net會被ADO.Net訪問數(shù)據(jù)庫方式弄得頭暈,感覺無從下手.
本文將它們整合在一起,文章并沒有涉及太多深層知識. 只是我覺得將它們集中在一起,
在比較中學(xué)習(xí)更快,更清晰一些:
本文列舉了用ADO.Net訪問數(shù)據(jù)庫的所有方式:
1.用Sql語句訪問數(shù)據(jù)庫
2.用無參存儲過程訪問數(shù)據(jù)庫
3.用有參存儲過程訪問數(shù)據(jù)庫
4.使用 CommandBuilder.DeriveParameters 來填充 Command 對象的 Parameters 集合,來訪問數(shù)據(jù)庫
5.使用SqlDataReader對象輸出數(shù)據(jù).

(二).代碼示例

用到的存儲過程 myprocedure  SQL代碼:
---有參

CREATE procedure dbo.[myprocedure]
(
 @start int,
 @end int
)
as
select  * from products
where productid>=@start and productid<=@end

---無參
CREATE procedure dbo.[myprocedure]
as
return 'Hello'
GO

private DataSet GetDataSet(int sign)  
  {

   //*******自定義連接字符串********/
   string connectionStr="server=(localhost);uid=sa;pwd=;database=NorthWind";  
   
   SqlConnection myConnection=new SqlConnection(connectionStr);
   DataSet myDataSet=new DataSet();
   string sqlProcedureName="myprocedure";  //此存儲過程必須事先已經(jīng)定義好了.
   if(sign==1)//執(zhí)行語句.  (最常用的情況)

   {    
    string queryStr="select * from products";    
    SqlDataAdapter myAdapter=new SqlDataAdapter(queryStr,connectionStr);
    
    myAdapter.Fill(myDataSet);
    return myDataSet;
   }


   if(sign==2)//調(diào)用SQL無參存儲過程,此存儲過程返回select查詢結(jié)果
   {    
    SqlCommand myCommand=new SqlCommand(sqlProcedureName,myConnection);
    myCommand.CommandType=CommandType.StoredProcedure;
    SqlDataAdapter myAdapter=new SqlDataAdapter(sqlProcedureName,myConnection);
    myAdapter.Fill(myDataSet);
    return myDataSet;    
   }
   if(sign==3)//調(diào)用SQL有參存儲過程,此存儲過程返回select查詢結(jié)果,且傳遞參數(shù)
   {
    SqlCommand myCommand=new SqlCommand(sqlProcedureName,myConnection);
    myCommand.CommandType=CommandType.StoredProcedure;
    
    SqlParameter start=new SqlParameter("@start",SqlDbType.Int,4); // 定義第一個參數(shù)

    start.Value=1;
    myCommand.Parameters.Add(start);

    SqlParameter end=new SqlParameter("@end",SqlDbType.Int,4); // 定義第二個參數(shù)

    end.Value=5;
    myCommand.Parameters.Add(end);
    
    SqlDataAdapter myAdapter=new SqlDataAdapter(sqlProcedureName,myConnection);
    myAdapter.SelectCommand=myCommand;               
    
    myAdapter.Fill(myDataSet);
    return myDataSet; 
   }
   if(sign==4)  //演示如何使用 CommandBuilder.DeriveParameters 來填充 Command 對象的 Parameters 集合
   {
    SqlCommand myCommand=new SqlCommand(sqlProcedureName,myConnection);
    myCommand.CommandType=CommandType.StoredProcedure;
    SqlDataAdapter myAdapter=new SqlDataAdapter(sqlProcedureName,myConnection);
    
    myConnection.Open();  //如果不打開連接,下一句將不知道從哪里去取所需的存儲過程
    SqlCommandBuilder.DeriveParameters(myCommand);              
    myCommand.Parameters["@start"].Value=1;
    myCommand.Parameters["@end"].Value=5;
    myAdapter.SelectCommand=myCommand;               
    
    myAdapter.Fill(myDataSet);
    return myDataSet; 

   }
   if(sign==5)//練習(xí)使用SqlDataReader,結(jié)果在控制臺輸出
   {
    SqlCommand myCommand=new SqlCommand(sqlProcedureName,myConnection);
    myCommand.CommandType=CommandType.StoredProcedure;
    
    SqlParameter start=new SqlParameter("@start",SqlDbType.Int,4); // 把4改變或去掉
    start.Value=1;
    myCommand.Parameters.Add(start);

    SqlParameter end=new SqlParameter("@end",SqlDbType.Int,4); // 把4改變或去掉
    end.Value=5;
    myCommand.Parameters.Add(end);
    
    SqlDataAdapter myAdapter=new SqlDataAdapter(sqlProcedureName,myConnection);
    myAdapter.SelectCommand=myCommand;        

    myConnection.Open();
    SqlDataReader myReader = myCommand.ExecuteReader();

    Console.WriteLine("{0}, {1}", myReader.GetName(0), myReader.GetName(1));

    while (myReader.Read())
    {
     //Console.WriteLine("{0},{1}", myReader.GetString(0), myReader.GetString(1));  //?不對
     Console.WriteLine("{0},{1}", myReader.GetValue(0), myReader.GetValue(1));
    }
               
    myConnection.Close();
    DataTable myTable=new DataTable();
    myDataSet.Tables.Add(myTable);
    return myDataSet;
   }
     return new DataSet();
  }

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
數(shù)據(jù)庫開發(fā)個人總結(jié)(ADO.NET) - ADO.NET教程 - 新客網(wǎng)
C#chart用法的幾個例子
C#數(shù)據(jù)庫連接
關(guān)于TreeView控件專題
一些VC調(diào)用C#com組件的方法片段
Asp.Net技巧精萃
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服