2014-10-15 2 views
0
SELECT LEFT(tblname, LEN(tblname) - 1) as col 
FROM (SELECT column_name + ',' 
FROM INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME='Cust_split' 
FOR XML PATH ('')) c (tblname) 

이 쿼리의 결과는 다음과 같이 col1, col2, col3입니다. 어떻게 C#에서이 값을 문자열로 읽을 수 있습니까? 또는 특정 테이블의 열을 C#의 col1, col2, col3과 같은 문자열로 읽을 수있는 다른 방법이 있습니다.C에서 문자열로 select 문 값을 읽는 방법 #

+0

당신은'getString()'메소드 – vallabha

+0

을 사용해 보았습니까? 대본을 얻으면 좋겠어. 미리 감사드립니다. –

+0

SqlDataReader를 사용하고 있습니까? – vallabha

답변

0

전체 코드가 될 것입니다. ExecuteScalar는 하나의 셀 값, 즉 하나의 열과 한 행만 필요로 할 때 편리한 함수입니다.

SqlConnection con=new SqlConnection("your Connection string here"); 
    SqlCommand cmd=new SqlCommand("your SQL Query here",con); 
    object o = cmd.ExecuteScalar(); 
    if (o != null) 
    { 
     string str= o.ToString(); 
    } 
+0

OP의 경우'select ... for xml'을 통해 단 하나의 문자열만을 반환하므로'SqlDataReader'에 OP가 필요하지 않습니다. 'SqlCommand.ExecuteScalar'만으로도 충분합니다. –

+0

@AndyKorneyev 신고 해 주셔서 감사합니다. 나는 그가 하나의 열만 반환한다는 것을 보지 못했다. – vallabha

+0

getstring()을 사용하여 빠른 응답 vallabha를 주셔서 대단히 감사합니다. –

0

글쎄, 연결 문자열에 따라 SqlConnection을 생성 한 다음 SqlConnamd을 텍스트로 작성하고 연결을 열고 SqlCommand.ExecuteScalar을 호출하면 XML 문자열보다 반환됩니다. 더 이상 필요가 없을 때 연결을 닫고 처분하는 것을 잊지 마십시오. ExecuteScalar는을 사용하여

 SqlConnection con=new SqlConnection("your Connection string here"); 
     SqlCommand cmd=new SqlCommand("your SQL Query here",con); 
     using(SqlDataReader rdr = cmd.ExecuteReader()) 
     { 
      if(rdr.HasRows) 
      { 
      while (rdr.Read()) 
      { 
       string myString = rdr.GetString(0); //The 0 stands for "the 0'th column", so the first column of the result. 
       (or) 
       string myString= rdr["ColumnName"].ToString(); 
      } 
    } 

} 

을 따를

+0

안녕하세요, 귀하의 Responce에 감사드립니다. 메신저를 실행할 수 있습니다. 하지만 그 결과를 문자열로 캡처 할 수는 없습니다. –

+0

@sumasreeammu 오류가있는 곳이 명확하지 않기 때문에 실제 코드를 보여주십시오. –