2014-10-01 8 views
2
나는 C# 및 SQL Server를 사용 을 "유전자 알고리즘 프로젝트를 사용하여 시간 표 Scedualing"일하고 있어요

..데이터베이스에서 데이터를 가져와 C#의 변수에 넣는 방법?

나는 3 개 레이어 (데이터 액세스 레이어, 비즈니스 레이어, 그리고 인터페이스)

에 프로젝트를 나누어 데이터 액세스 계층에는 다음이 포함

(생성자 메소드는 데이터베이스에서 데이터를 읽고, 연결을 열 방법을 연결을 열 방법 연결 개체를 초기화하는 방법은 삽입, 업데이트, 데이터베이스에서 데이터를 삭제)

예 :

// 방법 삽입, 업데이트,

public void ExecuteCommand(string stored_procedure, SqlParameter[] param) 
     { 
      SqlCommand sqlcmd = new SqlCommand(); 
      sqlcmd.CommandType = CommandType.StoredProcedure; 
      sqlcmd.CommandText = stored_procedure; 
      sqlcmd.Connection = sqlconnection; 
      if (param != null) 
      { 
       sqlcmd.Parameters.AddRange(param); 
      } 
      sqlcmd.ExecuteNonQuery(); 
     } 

비즈니스 계층은 각 양식 예를 들어

에 대한 클래스를 포함 데이터베이스에서 데이터를 삭제합니다

"교수 양식을 추가"에 대한 ADD_PROF.class을 ....................

이제 교수님에 관한 모든 데이터를 데이터베이스에서 얻으려면 (GET_ALL_PROF) 프로 시저를 만들고이 코드를 ADD_PROF 클래스에 작성하십시오. 내 문제는

public DataTable GET_ALL_PROF() //copied and pasted down for verfing 
     { 
      DAL.DataAccessLayer DAL = new DAL.DataAccessLayer(); 
      DataTable Dt = new DataTable(); 
      Dt = DAL.SelectData("GET_ALL_PROF", null); 
      DAL.Close(); 
      return Dt; 

     } 

... 나는 데이터베이스에서 교수 테이블에서 (교수 ID)를 얻을 C#에서 유전자 알고리즘 코드를 전달하는 변수에 넣어하는 방법을 몰라?

SQL의 절차는

Create proc [dbo].[get_id_PROF] 
as 
select ID_PROF from [dbo].[PROFESSOR] 
+0

SqlDataReader 사용 ... –

+0

리포지토리를 조사해야합니다. 현대적이고 유연하며 유지 보수가 용이합니다. – Jamie

답변

3

당신은 당신의 변수 데이터베이스에서 데이터를 저장하는 데 사용할 단순히 데이터베이스로부터 데이터를 판독하기위한 SqlDataReader을 사용할 수 있습니다.

int professorId; 
private static void ReadOrderData(string connectionString) 
{ 
    string queryString = "select ID_ST from [dbo].[PROFESSOR];"; 
    using (SqlConnection connection = new SqlConnection(connectionString)) 
    using (SqlCommand command = new SqlCommand(queryString, connection)) 
    { 
     connection.Open(); 
     using (SqlDataReader reader = command.ExecuteReader()) 
     { 
      // Call Read before accessing data. 
      if (reader.HasRows()) 
      { 
       reader.Read(); 
       professorId = reader.GetInt32(0); 

       // Call Close when done reading. 
       reader.Close(); 
      } 
     } 
    } 
} 

또는 당신이이 저장 프로 시저 사용을 시도 할 수 있습니다 :

int professorId; 
using (SqlConnection sqlConnection1 = new SqlConnection("Your Connection String")) 
using (SqlCommand cmd = new SqlCommand()) 
{ 
    cmd.CommandText = "StoredProcedureName"; 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Connection = sqlConnection1; 
    sqlConnection1.Open(); 

    using (SqlDataReader reader = cmd.ExecuteReader()) 
    { 
     // Data is accessible through the DataReader object here. 
     reader.Read(); 
     professorId = reader.GetInt32(0); 
    } 
} 
+0

Entity Framework는 SqlDataReader의 후속 제품입니다. 그것은 당신을 위해 많은 일을 할 것이므로 SQL 연결 대신 중요한 일에 집중할 수 있습니다. –

+0

OK .. 고맙습니다. :) –

관련 문제