2013-07-15 54 views
0

我在我的数据库中有ProductID列,我想将当前项目ID添加到此列。我试过了,但它不起作用:在sitecore中将当前项目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:值不能为空。 – User

+0

在哪一行?请调试您的代码。 –

回答

1

如果您正在查找您当前正在浏览的产品的ID,可以使用:Sitecore.Context.Item.ID。如果你不能使用它,你必须确保你的querystring实际存在并且有一个值。使用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()。 GUID,所以它取决于你试图将它保存到你的表格中的格式 – Trayek

+0

我想说你必须仔细检查你的CommentsTable定义以确保你在ProductID列中没有任何拼写错误那么 - 这就是错误听起来像... – Trayek

相关问题