一個完整的.net作的ObjectDataSource的數據類訪問組件

   這是一本書上的,但是我調好了沒問題。

   用的數據庫是SQL2000自帶的pubs庫。

       在App_Code下新建類文件AuthorDB.cs,內容如下:

    using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

/// <summary>
/// AuthorDB の概要の説明です
/// </summary>
public class AuthorDB
{
    public AuthorDB()
 {
  //
  // TODO: コンストラクタ ロジックをここに追加します
  //
 }
    //獲取state集合,返回DataSet,並通過DropDownList顯示
    public static DataSet GetStates()
    {
        //獲取連接字符串
        string connectionString = ConfigurationManager.ConnectionStrings["PubsConnectionString"].ConnectionString;
        //創建並設置SqlConnection
        SqlConnection dbConnection = new SqlConnection(connectionString);
        //定義SQL查詢語句
        string queryString = "Select distinct state from authors";
        //創建並設置SqlCommand
        SqlCommand dbCommand = new SqlCommand();
        dbCommand.Connection = dbConnection;
        dbCommand.CommandType = CommandType.Text;
        dbCommand.CommandText = queryString;
        //創建SqlDataAdapter,並獲取數據
        SqlDataAdapter dataAdapter = new SqlDataAdapter(dbCommand);
        DataSet ds = new DataSet();
        dataAdapter.Fill(ds);
        //返回數據
        return ds;
    }
    //獲取state參數,獲取數據記錄,返回DataSet,返回DataSet,並通過GridView顯示
    public static DataSet GetAuthorsByState(string state)
    {
        //獲取連接字符串
        string connectionString = ConfigurationManager.ConnectionStrings["PubsConnectionString"].ConnectionString;
        //創建並設置SqlConnection
        SqlConnection dbConnection = new SqlConnection(connectionString);
        //定義SQL查詢語句
        string queryString = "Select au_id,au_fname,au_lname,state from authors where state=@state";
        //創建並設置SqlCommand
        SqlCommand dbCommand = new SqlCommand();
        dbCommand.Connection = dbConnection;
        dbCommand.CommandType = CommandType.Text;
        dbCommand.CommandText = queryString;
        //設置SqlParameter
        SqlParameter dbParameter_state = new SqlParameter();
        dbParameter_state.ParameterName = "@state";
        dbParameter_state.Value = state;
        dbParameter_state.DbType = DbType.StringFixedLength;
        //向SqlCommand中添加SqlParameter
        dbCommand.Parameters.Add(dbParameter_state);
        //創建SqlDataAdapter,並獲取數據
        SqlDataAdapter dataAdapter = new SqlDataAdapter(dbCommand);
        DataSet ds = new DataSet();
        dataAdapter.Fill(ds);
        //返回數據
        return ds;
    }
    //更新數據記錄
    public static int UpdateAuthor(string au_id,string au_lname,string au_fname,string state)
    {
        //獲取連接字符串
        string connectionString = ConfigurationManager.ConnectionStrings["PubsConnectionString"].ConnectionString;
        //創建並設置SqlConnection
        SqlConnection dbConnection = new SqlConnection(connectionString);
        //定義SQL查詢語句
        string queryString = "UPDATE authors SET au_fname=@au_fname,au_lname=@au_lname,state=@state WHERE au_id = @au_id";
        //創建並設置SqlCommand
        SqlCommand dbCommand = new SqlCommand();
        dbCommand.Connection = dbConnection;
        dbCommand.CommandType = CommandType.Text;
        dbCommand.CommandText = queryString;

        //設置參數@au_id
        SqlParameter dbParameter_au_id = new SqlParameter();
        dbParameter_au_id.ParameterName = "@au_id";
        dbParameter_au_id.Value = au_id;
        dbParameter_au_id.DbType = DbType.String;
        //向SqlCommand中添加@au_id
        dbCommand.Parameters.Add(dbParameter_au_id);

        //設置參數@au_lname
        SqlParameter dbParameter_au_lname = new SqlParameter();
        dbParameter_au_lname.ParameterName = "@au_lname";
        dbParameter_au_lname.Value = au_lname;
        dbParameter_au_lname.DbType = DbType.String;
        //向SqlCommand中添加@au_lname
        dbCommand.Parameters.Add(dbParameter_au_lname);

        //設置參數@au_fname
        SqlParameter dbParameter_au_fname = new SqlParameter();
        dbParameter_au_fname.ParameterName = "@au_fname";
        dbParameter_au_fname.Value = au_fname;
        dbParameter_au_fname.DbType = DbType.String;
        //向SqlCommand中添加@au_fname
        dbCommand.Parameters.Add(dbParameter_au_fname);

        //設置參數@state
        SqlParameter dbParameter_state = new SqlParameter();
        dbParameter_state.ParameterName = "@state";
        dbParameter_state.Value = state;
        dbParameter_state.DbType = DbType.StringFixedLength;
        //向SqlCommand中添加@state
        dbCommand.Parameters.Add(dbParameter_state);
       
        //執行SQL語句,並且返回受影響的行數
        int rowsAffected = 0;
        dbConnection.Open();
        try
        {
            rowsAffected = dbCommand.ExecuteNonQuery();
        }
        finally
        {
            dbConnection.Close();
        }
        return rowsAffected;
    }
}
然後在配置文件web.config中加上連接程序就可以了。

最後當然是在表示層用objectdatasourse組件連接了,綁定在服務器組件上就可以運行了。

寫的比較匆忙,如有問題請留言,一塊解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章