我想在往数据库插入数据成功的时候取出该记录的PostID值!现在值是读对的,但是每次都是添加进两条数据啊!!为什么?
.....
String insertCmd = "insert into TestCSharp (Title, Content) values (@Title, @Content) SELECT PostID = @@IDENTITY";
SqlCommand myCommand = new SqlCommand(insertCmd, myConnection);
myCommand.Parameters.Add(new SqlParameter("@Title", SqlDbType.NVarChar, 11));
myCommand.Parameters["@Title"].Value = Title;
myCommand.Parameters.Add(new SqlParameter("@Content", SqlDbType.NVarChar, 40));
myCommand.Parameters["@Content"].Value = Content;
myCommand.Connection.Open();
try
{
myCommand.ExecuteScalar();
//Response.Write("<script>alert('系统提示:信息录入成功!');window.close;</script>");
Int32 PostID = Convert.ToInt32(myCommand.ExecuteScalar());
Response.Write (PostID);
....
.....
String insertCmd = "insert into TestCSharp (Title, Content) values (@Title, @Content) SELECT PostID = @@IDENTITY";
SqlCommand myCommand = new SqlCommand(insertCmd, myConnection);
myCommand.Parameters.Add(new SqlParameter("@Title", SqlDbType.NVarChar, 11));
myCommand.Parameters["@Title"].Value = Title;
myCommand.Parameters.Add(new SqlParameter("@Content", SqlDbType.NVarChar, 40));
myCommand.Parameters["@Content"].Value = Content;
myCommand.Connection.Open();
try
{
myCommand.ExecuteScalar();
//Response.Write("<script>alert('系统提示:信息录入成功!');window.close;</script>");
Int32 PostID = Convert.ToInt32(myCommand.ExecuteScalar());
Response.Write (PostID);
....
SqlCommand myCommand = new SqlCommand(insertCmd, myConnection);
myCommand.Parameters.Add(new SqlParameter("@Title", SqlDbType.NVarChar, 11));
myCommand.Parameters["@Title"].Value = Title;
myCommand.Parameters.Add(new SqlParameter("@Content", SqlDbType.NVarChar, 40));
myCommand.Parameters["@Content"].Value = Content;
myCommand.Connection.Open();
try
{
//Response.Write("<script>alert('系统提示:信息录入成功!');window.close;</script>");
Int32 PostID = Convert.ToInt32(myCommand.ExecuteScalar());
Response.Write (PostID);
....
Int32 PostID = Convert.ToInt32(myCommand.ExecuteScalar());
执行了两次ExecuteScalar,当然保存了两条数据啊
把上面的去掉就可以了
{
Int32 PostID = Convert.ToInt32(myCommand.ExecuteScalar());//一次就够了
//Response.Write("<script>alert('系统提示:信息录入成功!');window.close;</script>");Response.Write (PostID);你的代码很明显运行了2次嘛