2012-11-07 4 views
0

모든 내가 뭘하려고하면 저장 프로 시저를 사용하여 "완료"상태 필드를 설정할 수 있지만 저장 프로 시저를 실행 한 후 어떤 이유로 내 테이블을 업데이트하지 않습니다. 누군가 제가 여기있는 데 도움이 될 수 있고 내가 뭘 잘못하고 있다고 말할 수 있습니까? 감사 // 여기 저장된 PROC 코드 "gr.Cells [1]는 .text"의매개 변수 및 저장된 프로 시저를 사용하는 방법

CREATE PROCEDURE sp_Update 
    @ID varchar 

AS 
BEGIN 
-- SET NOCOUNT ON added to prevent extra result sets from 
-- interfering with SELECT statements. 
SET NOCOUNT ON; 

if exists (select Post_ID from MyTable WHERE Post_ID = @ID) 
    BEGIN 
     UPDATE MyTable 
     SET Status = 'Complete' 
     WHERE Post_ID = @ID 
    END 

END 

//and here is the code behind 
foreach (GridViewRow gr in GV_Action.Rows) 
     { 

       //string strID = gr.Cells[1].Text; 
       string ID = gr.Cells[1].Text; 
       SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString); 

       SqlCommand cmd = new SqlCommand("sp_Update", con); 
       cmd.CommandType = CommandType.StoredProcedure; 

       cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = ID; 

       cmd.Connection = con; 
       con.Open(); 
       cmd.ExecuteNonQuery(); 
       con.Close(); 

     } 
+0

SQL 프로파일 러를 사용하여 서버에서 실행중인 내용을보고 결과를 다시보고하십시오. – Dai

+0

코드에 문제가 없는데 예외가 발생하지 않았습니까? 어쩌면 온전한 체크를 위해 저장된 proc로부터 어떤 값을 돌려 주려고 시도 할 것입니다. – McGarnagle

+0

아니 예외가 던져 .. 거기에 절차를 성공적으로 실행할 경우 찾을 수있는 방법은 무엇입니까? – moe

답변

0

세포 [X]를 기반으로 제로이다. ID가 첫 번째 열에 있으면 'gr.Cells [0] .Text'가 필요합니다. 바로 다음 줄에 중단 점을 넣고 거기에 어떤 가치가 있는지 확인하십시오.

+0

"gr.Cells [1]. 텍스트"는 두 번째 열입니다. – moe

+0

좋아요, 제안한대로 중단 점을 넣었고 내 ID가 비어있는 것 같습니다. gridview 값에 액세스하여 문자열 ID로 할당 할 수있는 다른 방법이 있습니까? 덕분에 – moe

+0

여기에서 도움을 얻을 수 있습니까? gridview에서 값에 액세스하는 적절한 방법은 무엇입니까? 감사 – moe

관련 문제