Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态更新数据库记录_C#_Sql Server_Button_Executenonquery - Fatal编程技术网

C# 动态更新数据库记录

C# 动态更新数据库记录,c#,sql-server,button,executenonquery,C#,Sql Server,Button,Executenonquery,除非我添加一条记录,否则它不会显示任何错误,它会捕获异常,从而将连接问题作为输出。我试了很多次,但没有找到我的错误。这是我的代码: public partial class Default2 : System.Web.UI.Page { private string conStr = WebConfigurationManager.ConnectionStrings["StudentConnectionString1"].ConnectionString; protected void Pag

除非我添加一条记录,否则它不会显示任何错误,它会捕获异常,从而将连接问题作为输出。我试了很多次,但没有找到我的错误。这是我的代码:

public partial class Default2 : System.Web.UI.Page
{
private string conStr = WebConfigurationManager.ConnectionStrings["StudentConnectionString1"].ConnectionString;

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        FillList();
        BtnsActive(false, true, false, false, false, false);

    }
}

protected void BtnsActive(bool a, bool b, bool c, bool d, bool e, bool f)
{
    Panel2.Enabled = a;
    btnAdd.Enabled = b;
    btnInsert.Enabled = c;
    btnEdit.Enabled = d;
    btnUpdate.Enabled = e;
    btnDelete.Enabled = f;

}
protected void FillList()
{
    SqlConnection con = new SqlConnection(conStr);
    SqlCommand cmd = new SqlCommand("Select * from Student order by StudId", con);
    SqlDataReader reader;
    DropDownList1.Items.Clear();
    try
    {
        con.Open();
        reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            ListItem newItem = new ListItem();
            newItem.Text = reader["StudId"] + "," + reader["StudFirstName"];
            newItem.Value = reader["StudId"].ToString();
            DropDownList1.Items.Add(newItem);
        }
    }
    catch (Exception er)
    {

        Response.Write("<script language='javascript'>alert('Connection Problem');</script>");
    }
    finally
    {
        con.Close();

    }
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(conStr);
    SqlCommand cmd = new SqlCommand("Select * from Student where StudId='" +  DropDownList1.SelectedValue + "'", con);
    SqlDataReader reader;

    try
    {
        con.Open();
        reader = cmd.ExecuteReader();
        reader.Read();

        TextBox1.Text = reader["StudId"].ToString();
        TextBox2.Text = reader["StudFirstName"].ToString();
        CheckBox1.Checked = (bool)reader["Library"];
    }
    catch (Exception er)
    {

        Response.Write("<script language='javascript'>alert('Connection Problem');</script>");
    }
    finally
    {
        con.Close();
        BtnsActive(false, true, false, true, false, true);
    }
}
protected void btnAdd_Click(object sender, EventArgs e)
{
    BtnsActive(true, false, true, false, false, false);
    TextBox1.Text = "";

    TextBox2.Text = "";
    CheckBox1.Checked = false;
}
protected void btnInsert_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(conStr);
    SqlCommand cmd = new SqlCommand("Insert into Student (StudId,StudFirstName,Library) values(@sid,@name,@library)", con);
    cmd.Parameters.AddWithValue("@sid", TextBox1.Text);
    cmd.Parameters.AddWithValue("@name", TextBox2.Text);
    cmd.Parameters.AddWithValue("@library", CheckBox1.Checked);

    try
    {
        con.Open();
        cmd.ExecuteNonQuery();
        Response.Write("<script language='javascript'>alert('Record has been added.');</script>");

    }
    catch (Exception er)
    {

        Response.Write("<script language='javascript'>alert('Connection Problem');</script>");
    }
    finally
    {
        con.Close();
        BtnsActive(false, true, false, false, false, false);
        FillList();
    }
}
protected void btnEdit_Click(object sender, EventArgs e)
{
    BtnsActive(true, false, false, false, true, false);
}
protected void btnUpdate_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(conStr);
    SqlCommand cmd = new SqlCommand("Update Student set StudId=@id,StudFirstName=@name,Library=@library) where StudId=@oldId", con);
    cmd.Parameters.AddWithValue("@id", TextBox1.Text);
    cmd.Parameters.AddWithValue("@name", TextBox2.Text);
    cmd.Parameters.AddWithValue("@library", CheckBox1.Checked);
    cmd.Parameters.AddWithValue("@oldId", DropDownList1.SelectedValue);
    try
    {
        con.Open();
        cmd.ExecuteNonQuery();
        Response.Write("<script language='javascript'>alert('The Record has been Updated.');</script>");

    }
    catch (Exception er)
    {

        Response.Write("<script language='javascript'>alert('Connection Problem');</script>");
    }
    finally
    {
        con.Close();
        BtnsActive(false, true, false, false, false, false);
        FillList();
    }
}
protected void btnDelete_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(conStr);
    SqlCommand cmd = new SqlCommand("Delete from Student where StudId=@id", con);
    cmd.Parameters.AddWithValue("@id", TextBox1.Text);

    try
    {
        con.Open();
        cmd.ExecuteNonQuery();
        Response.Write("<script language='javascript'>alert('The Record has been Deleted.');</script>");

    }
    catch (Exception er)
    {

        Response.Write("<script language='javascript'>alert('Connection Problem');</script>");
    }
    finally
    {
        con.Close();
        BtnsActive(false, true, false, false, false, false);
        FillList();
    }

}
}
public部分类Default2:System.Web.UI.Page
{
私有字符串conStr=WebConfiguration Manager.ConnectionString[“StudentConnectionString”].ConnectionString;
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!this.IsPostBack)
{
填充列表();
BtnsActive(假、真、假、假、假、假);
}
}
受保护的无效BtnsActive(布尔a、布尔b、布尔c、布尔d、布尔e、布尔f)
{
面板2.启用=a;
btnAdd.Enabled=b;
btn插入已启用=c;
btnEdit.Enabled=d;
btnUpdate.Enabled=e;
btnDelete.Enabled=f;
}
受保护的无效填充列表()
{
SqlConnection con=新的SqlConnection(cont);
SqlCommand cmd=新的SqlCommand(“按StudId从学生订单中选择*”,con);
SqlDataReader;
DropDownList1.Items.Clear();
尝试
{
con.Open();
reader=cmd.ExecuteReader();
while(reader.Read())
{
ListItem newItem=新ListItem();
newItem.Text=reader[“StudId”]+,“+reader[“StudFirstName”];
newItem.Value=reader[“StudId”].ToString();
DropDownList1.Items.Add(newItem);
}
}
捕获(异常er)
{
响应。写入(“警报(‘连接问题’);”;
}
最后
{
con.Close();
}
}
受保护的void DropDownList1\u SelectedIndexChanged(对象发送方,事件参数e)
{
SqlConnection con=新的SqlConnection(cont);
SqlCommand cmd=new SqlCommand(“从StudId='”+DropDownList1.SelectedValue+'”,con的学生中选择*);
SqlDataReader;
尝试
{
con.Open();
reader=cmd.ExecuteReader();
reader.Read();
TextBox1.Text=reader[“StudId”].ToString();
TextBox2.Text=reader[“StudFirstName”].ToString();
CheckBox1.Checked=(bool)读卡器[“库”];
}
捕获(异常er)
{
响应。写入(“警报(‘连接问题’);”;
}
最后
{
con.Close();
BtnsActive(假、真、假、真、假、真);
}
}
受保护的无效btnAdd_单击(对象发送者,事件参数e)
{
BtnsActive(真、假、真、假、假、假);
TextBox1.Text=“”;
TextBox2.Text=“”;
CheckBox1.Checked=false;
}
受保护的无效BTN插入\单击(对象发送方,事件参数e)
{
SqlConnection con=新的SqlConnection(cont);
SqlCommand cmd=new SqlCommand(“插入到学生(StudId,StudFirstName,Library)值(@sid,@name,@Library)”,con);
cmd.Parameters.AddWithValue(“@sid”,TextBox1.Text);
cmd.Parameters.AddWithValue(“@name”,TextBox2.Text);
cmd.Parameters.AddWithValue(“@library”,CheckBox1.Checked);
尝试
{
con.Open();
cmd.ExecuteNonQuery();
响应。写入(“警报('已添加记录');”;
}
捕获(异常er)
{
响应。写入(“警报(‘连接问题’);”;
}
最后
{
con.Close();
BtnsActive(假、真、假、假、假、假);
填充列表();
}
}
受保护的无效btnEdit\u单击(对象发送者,事件参数e)
{
BtnsActive(真、假、假、假、真、假);
}
受保护的void b更新\u单击(对象发送方,事件参数e)
{
SqlConnection con=新的SqlConnection(cont);
SqlCommand cmd=new SqlCommand(“更新学生集StudId=@id,StudFirstName=@name,Library=@Library),其中StudId=@oldId”,con);
cmd.Parameters.AddWithValue(“@id”,TextBox1.Text);
cmd.Parameters.AddWithValue(“@name”,TextBox2.Text);
cmd.Parameters.AddWithValue(“@library”,CheckBox1.Checked);
cmd.Parameters.AddWithValue(“@oldId”,DropDownList1.SelectedValue);
尝试
{
con.Open();
cmd.ExecuteNonQuery();
响应。写入(“警报('记录已更新');”;
}
捕获(异常er)
{
响应。写入(“警报(‘连接问题’);”;
}
最后
{
con.Close();
BtnsActive(假、真、假、假、假、假);
填充列表();
}
}
受保护的无效BTN删除\单击(对象发送者,事件参数e)
{
SqlConnection con=新的SqlConnection(cont);
SqlCommand cmd=newsqlcommand(“从StudId=@id的学生中删除”,con);
cmd.Parameters.AddWithValue(“@id”,TextBox1.Text);
尝试
{
con.Open();
cmd.ExecuteNonQuery();
响应。写入(“警报('记录已被删除');”;
}
捕获(异常er)
{
响应。写入(“警报(‘连接问题’);”;
}
最后
{
con.Close();
BtnsActive(假、真、假、假、假、假);
填充列表();
}
}
}
这是我的设计代码,很简单

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs"     Inherits="Default2" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>

    <asp:Panel ID="Panel1" runat="server" BackColor="#CC3300">
        Stud ID:<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
        </asp:DropDownList>
        <br />
        <br />
        <asp:Button ID="btnAdd" runat="server" OnClick="btnAdd_Click" Text="Add" />
        <asp:Button ID="btnInsert" runat="server" OnClick="btnInsert_Click" Text="Insert" />
        <asp:Button ID="btnEdit" runat="server" OnClick="btnEdit_Click" Text="Edit" />
        <asp:Button ID="btnUpdate" runat="server" OnClick="btnUpdate_Click" Text="Update" />
        <asp:Button ID="btnDelete" runat="server" OnClick="btnDelete_Click" Text="Delete" />
    </asp:Panel>
    <asp:Panel ID="Panel2" runat="server" BackColor="#FF9933">
        <br />
        <br />
        Stud ID:
        <asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox>
        <br />
        Name:
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <br />
        Library :
        <asp:CheckBox ID="CheckBox1" runat="server" />
    </asp:Panel>

</div>
</form>
</body>
</html>

螺柱ID:




螺柱ID:
姓名:
图书馆:
使用调试器调试代码。首先,您的
catch
表示连接问题。。实际上,可能是从发送的查询中抛出了很多东西。改为打印异常消息。。这将使您更好地了解实际问题。我应该尝试捕获哪种异常??保留现有的。。但不是打印连接问题,而是打印连接问题。。你应该打印
er.Message
。我认为西蒙在这里给出了一些很好的建议。为了补充他的话,当您使用调试器时,请注意异常抛出的位置。如果它在
con.Open()上则连接字符串可能有问题。如果它位于下面两行中的一行,则可能是SQL有问题(例如,表名可能是
Student
,而不是
Student
或列名i