尝试通过c#/ asp.net将数据插入到数据库表中

时间:2015-10-06 18:44:29

标签: c# asp.net sql-server

这段代码,在sql命令后继承应该带我到一个页面,失败时会显示错误页面。每当我通过表单插入值时,它会将我带到错误页面。不知怎的,我的物品没有被插入。帮助将不胜感激

public partial class StudentManage : System.Web.UI.Page
{
    protected void Add_Click(object sender, EventArgs e)
    {
         SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Database"].ConnectionString);
         con.Open();

         // here added "@" to write continuous strind in new line
         SqlCommand cmd = new SqlCommand(@"INSERT INTO ManageStudents(StudentName, StudentEmail, StudentAddress, StudentCity) VALUES(@name, @email, @address, @city)",con);
         cmd.Parameters.AddWithValue("@name", txtStudentName.Text);
         cmd.Parameters.AddWithValue("@email", txtStudentEmail.Text);
         cmd.Parameters.AddWithValue("@address", txtStudentAddress.Text);
         cmd.Parameters.AddWithValue("@city", txtStudentCity.Text);

         SqlDataAdapter da1 = new SqlDataAdapter(cmd);
         DataTable dt2 = new DataTable();
         da1.Fill(dt2);

         if (dt2.Rows.Count > 0)
         {
            Response.Write("Table Updated");
            Response.Redirect("StudentManage.aspx");
         }
         else
         {
            Response.Redirect("Error.aspx");
            //ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('Invalid Username and Password')</script>");
         }
    }
}

2 个答案:

答案 0 :(得分:3)

要执行INSERT,UPDATE或DELETE语句,您需要使用ExecuteNonQuery()方法而不是DataTable。

var result = cmd.ExeuteNonQuery();
if(result > 0)
{
    Response.Write("Table Updated");
    Response.Redirect("StudentManage.aspx");
}
// ...

答案 1 :(得分:0)

我认为这是一个测试项目,因为你的代码有三个主要问题,

  • 您应该创建一个使用或尝试最终关闭连接
  • 将调用的数据放在同一层的UI中,这不是一件好事 实践。
  • Last Fill只进行选择,不更新表格。请改用command.ExecuteNotQuery

我希望这能帮到你