2016-05-09 1 views
0

学生データベースに関するデータを私のウィンドウに取得したいのですが、studentidを選択する "Student View"すべての情報を記入してください。事前にありがとう、これは私のコードです。どのようにデータテーブルを使用してCのSQL Serverからテーブル内のデータを取得するのですか

解決策1しかし、私は多くの学生がいるため、効果的ではありません。私のデータベースから読み込まれません。

public override DataTable getStudentData() 
    {  
    DataTable dt = new DataTable(); 
    dt.Columns.Add("StudentID"); 
    dt.Columns.Add("FirstName"); 
    dt.Columns.Add("LastName"); 
    dt.Columns.Add("Gender"); 
    dt.Columns.Add("Streetadress"); 
    dt.Columns.Add("ZipCode"); 
    dt.Columns.Add("Birthdate"); 
    dt.Columns.Add("StudentType"); 
    dt.Columns.Add("City"); 
    dt.Columns.Add("Country"); 
    dt.Columns.Add("program"); 
    dt.Columns.Add("PgmStartYear"); 
    dt.Columns.Add("credits"); 
    dt.Rows.Add("studentid", "Firstname", "Lastname", "Gender", "Adress", "Zipcode", "Birthdate", "Studenttype ", "City", "Country", "Programname", Startyear, credits); 

return dt; 
} 

私が可能になりたいのソリューションは、このようなものです:あなたは、SQL Serverからデータを取得するには、次の機能を使用することができます

 DataTable dt = new DataTable(); 
     dt.Rows.Add(["studentid"].ToString()); 
     dt.Rows.Add(["firstname"].ToString()); 
     dt.Rows.Add(["lastname"].ToString()); 
     dt.Rows.Add(["gender"].ToString()); 
     dt.Rows.Add(["birthdate"].ToString()); 
     dt.Rows.Add(["streetadress"].ToString()); 
     dt.Rows.Add(["zipcode"].ToString()); 
     dt.Rows.Add(["country"].ToString()); 
     dt.Rows.Add(["city"].ToString()); 
     dt.Rows.Add(["studenttype"].ToString()); 
     dt.Rows.Add(["programname"].ToString()); 
     dt.Rows.Add(["year"].ToString()); 
+2

エンティティフレームワークを使ってすべてのテーブルのクラスを自動的に生成しようとしましたか? –

+0

私は初心者で、C#とSQL Serverの両方で遊んでいるので、あなたが本当に何を意味するのか分かりません。私がやったことは私のデータベースと私を結びつけて、学生を読んで追加するためのすべてのコードを実装したことです。今私は追加した学生を見たいと思う。フレームワークを使用する必要があるのですか? –

+0

手作業でのコーディングが少なくて済むコーディング手法を探している場合は、エンティティフレームワークを使用する方法があります。エンティティフレームワークは、データベースとのインターフェイスをコーダーにとって簡単にし、多くのコードを自動生成するライブラリとユーザーインターフェイスです。私はあなたがデスクトップまたはWebアプリケーションを構築しているかどうかはわかりませんが、ここにデスクトップアプリケーションの例があります:http://www.codeproject.com/Articles/753510/SocialClub-A-Sample-application-using- Csharp-NET-E。あなたの質問を編集し、どの質問を明確にするのに役立ちます。あなたが今始めているのであれば、デスクトップはウェブよりはるかに簡単です。 –

答えて

0

としてSQLEXPRESSSQL2008

  • DBNAME ....

    示唆した答え前に一方向です(完全に動作します)... この別の方法を見つけることができますlink

    あなたはC#の初心者ですが、まだ学習していますが、直接SQLの代わりにストアドプロシージャを使用するページの「ソリューション2」に従うことをお勧めします。

  • 0

    using System.Data; 
    using System.Data.SqlClient; 
    
    public DataTable StudentView() 
    { 
        SqlConnection sqlCon = new SqlConnection(@"Server= localhost\SQLINSTANCENAME; Database= DBNAME; Integrated Security=True;"); 
    
        SqlDataAdapter sqlDa = new SqlDataAdapter("QUERY", sqlCon); 
    
        DataTable dtbl = new DataTable(); 
        sqlDa.Fill(dtbl); 
    
        return dtbl; 
    } 
    

      を交換してください
    • SQLINSTANCENAME wn SQL Serverインスタンス名。データベース名
    • QUERYあなたはチュートリアルのいくつかの種類やC#を使用してデータベースからの読み込みについての記事を必要とするSELECT column-list FROM your-table
    0

    ありがとうございました。私はすでに私のデータベースに接続してこのようなものを試してみました:

      try 
          { 
          SqlCommand read = new SqlCommand(); 
          read.CommandType = CommandType.Text; 
          read.Connection = connect; 
          read.CommandText = "SELECT * FROM [viewstudent]"; 
          SqlDataReader get; 
          get = read.ExecuteReader(); 
    
          while (get.Read()) 
          { 
           dt.Rows.Add(["studentid"].ToString(); get["firstname"].ToString(); get["lastname"].ToString(); get["gender"].ToString(); get["birthdate"].ToString(); get["streetadress"].ToString(); get["zipcode"].ToString(); get["country"].ToString(); 
           get["city"].ToString(); get["studenttype"].ToString(); get["programname"].ToString(); get["year"].ToString(); get["credits"].ToString(); 
          } 
    
          MessageBox.Show("Good!"); 
    
         } 
         catch (Exception e) 
         { 
          MessageBox.Show("Error try again!"); 
         } 
         connect.Close(); 
    
         return dt; 
        }  
    
    関連する問題