我将查询字符串传递给我的加载页面(ID) 然后尝试选择该行的列(状态),使其最终只有一个单元格。
我的目标是在包含一些文本的页面中取一些标签(不是文本框),并将其放在“状态”单元格中。
这是我的代码:
this.conn = new SqlConnection(ConnString); conn.Open(); string idIndex = Request.QueryString [“ID”]; string sqlquery1 =“INSERT INTO Movies(Status)VALUES(@Status)”; string sqlquery2 =“SELECT FROM FROM FROM WHERE ID =”+ idIndex;
cmd = new SqlCommand(sqlquery2, conn);
adapter = new SqlDataAdapter(sqlquery2, conn);
dt = new DataTable();
adapter.Fill(dt);
string data = "";
foreach (DataRow dataRow in dt.Rows)
{
data = dataRow["Status"].ToString();
}
if (data == "")
{
string username = UserNameOrGuest.Text;
cmd = new SqlCommand(sqlquery1, conn);
cmd.Parameters.AddWithValue("Status", username);
ErrorLabel.Text = "Movie rental succeeded!";
cmd.ExecuteNonQuery();
}
else
{
ErrorLabel.Text = "The movie is already rented by somebody else.";
}
}
我得到一个例外:
“无法将值NULL插入列'Ganere',表'Movie.dbo.Movies';列不允许空值.INSERT失败。 声明已经终止。“
(“Ganere”是表格中的另一栏,我不希望它通过。)
帮助者的谢谢!
答案 0 :(得分:2)
这不是桌子的工作原理。插入记录时,该记录需要满足表的数据完整性标准。在这种特殊情况下,它听起来像表有一个必需的列。 (它甚至可能包含更多必需的列,而这只是您在查询中遇到的第一个列。)
此时你的选择是:
null
。