2013-07-15 2 views
0

내 db에 ProductID 열이 있는데이 항목에 현재 항목 ID를 추가하고 싶습니다. 이 작업을 시도했지만 작동하지 않습니다.sitecore의 db에 현재 항목 ID 추가

private void InsertInfo() 
    { 

     SqlConnection conn = new SqlConnection(GetConnectionString()); 
     string sql = "INSERT INTO CommentsTable (Name, Email, Comment, ProductID) VALUES (@Name,@Email,@Comment,@ProductID)"; 
     try 
     { 
      conn.Open(); 
      SqlCommand cmd = new SqlCommand(sql, conn); 
      cmd.Parameters.AddWithValue("@Name", TextBox1.Text); 
      cmd.Parameters.AddWithValue("@Email", TextBox2.Text); 
      cmd.Parameters.AddWithValue("@Comment", TextBox3.Text); 
      cmd.Parameters.AddWithValue("@ProductID", Sitecore.Context.Item.ID.ToString()); 
      cmd.CommandType = CommandType.Text; 
      cmd.ExecuteNonQuery(); 
     } 

감사합니다.

+1

예외 또는 오류 메시지가 있습니까? –

+0

System.ArgumentNullException : 값을 null 일 수 없습니다. – User

+0

어떤 행에 있습니까? 코드를 디버그하십시오. –

답변

1

현재 검색중인 제품의 ID를 찾고있는 경우 Sitecore.Context.Item.ID을 사용할 수 있습니다. 이것을 사용할 수 없다면, 쿼리 링이 실제로 존재하고 가치가 있는지 확인해야합니다. Sitecore를 사용하면 Sitecore.Web.WebUtil.GetQueryString("id", string.Empty)을 사용할 수 있습니다. 여기서 string.Empty은 기본값을 원하는 값으로 바꿀 수 있습니다.

+0

Sitecore.Context.Item.ID (위의 코드)를 시도했지만 예외가 발생했습니다 : System.ArgumentException : 개체 유형 Sitecore.Data.ID에서 알려진 관리되는 공급자 네이티브 형식으로의 매핑이 없습니다. – User

+0

Sitecore.Context.Item.ID.ToString()을 사용하려는 경우 ID는 a입니다. 그래도 GUID는 테이블에 저장하려는 형식에 따라 달라집니다. – Trayek

+0

ProductID 열에 오타가 없는지 확인하기 위해 CommentsTable 정의를 다시 확인해야합니다. 다음은 오류가 들리는 것입니다. – Trayek

관련 문제