3

テーブルをクエリし、指定された列を含むDatasetオブジェクトを返すメソッドを作成しています。さらに、ユーザー名とパスワードに問題があるため、同じためにWindows認証を使用していますが、これまでに書いたスニペットではそれについてよくわかりません。

 protected void GetProgramList()
    {
        SqlConnection cn = new SqlConnection("server=Daffodils-PC/sqlexpress;Database=Assignment1;Trusted_Connection=Yes;");
        SqlCommand cmd = new SqlCommand("SELECT ProgramName FROM Program", cn);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet1 ds1 = new DataSet1();

    }

MS の公式ドキュメントに従おうとしてきましたが、どこに行けばいいのかわかりません。誰かがリンクやスニペットを手伝ってくれますか?

4

4 に答える 4

7

ここには 2 つのオプションがあると思います: 1. DataSet クラス変数を作成して、その参照にクラス全体からアクセスできるようにする (アクセス修飾子を public に設定して、他のクラスからアクセスできるようにする) 2. または、戻り値の型が DataSet のメソッド。ただし、この場合、反対側でも DataSet を受け取るように設定する必要があります。

//2. 解決:

    private void GetData()
    {
        //from inside some method:
        DataSet ds = GetProgramList();
    }

    protected DataSet GetProgramList()
    {
        DataSet ds1 = new DataSet();
        using (SqlConnection cn = new SqlConnection("server=Daffodils-PC/sqlexpress;Database=Assignment1;Trusted_Connection=Yes;"))
        {
            using (SqlDataAdapter da = new SqlDataAdapter(@"SELECT ProgramName FROM Program", cn))
                da.Fill(ds1, "TableName1");
        }
        return ds1;
    }
    //


//1. solution:
class YourClass
{
    DataSet ds1;
    protected void GetProgramList()
    {
        SqlConnection cn = new SqlConnection("server=Daffodils-PC/sqlexpress;Database=Assignment1;Trusted_Connection=Yes;");
        SqlCommand cmd = new SqlCommand("SELECT ProgramName FROM Program", cn);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        ds1 = new DataSet();
    }
}
于 2012-07-22T06:21:54.207 に答える
2

app.config または web.config の AppSettings セクションに接続文字列を配置します。

   public string GetSqlConnection()
    {
        return  System.Configuration.ConfigurationManager.AppSettings["SqlConnectionString"];
    }



  public DataSet getDataSet(string sql)
    {
        DataSet ds = new DataSet();
        SqlConnection conn = new SqlConnection(GetSqlConnection());
        SqlDataAdapter da = new SqlDataAdapter(sql, conn);
        da.Fill(ds);
        conn.Close();
        conn.Dispose();
        da.Dispose();
        return ds;
    }
于 2014-02-22T00:33:54.340 に答える
0

提案: System.Data と System.Data.SqlClient を「使用」し、「SqlDataReader」を使用します。

ルーチン内のすべてを読み取るか (通常は推奨)、SqlDataReader を呼び出し元に (関数の戻り値として) 返します。

完了したら、必ずリーダーを .Close() してください:)

于 2012-07-22T06:09:41.290 に答える
0

SQLDataAdapter Basic では、接続を作成し、それをコードで使用する基本から始めます。

于 2012-07-22T06:22:08.487 に答える