gpt4 book ai didi

c# - 无法插入数据库 asp.net C#

转载 作者:行者123 更新时间:2023-11-29 13:23:03 25 4
gpt4 key购买 nike

我的代码出了点问题。插入代码不起作用。有人可以告诉我我做错了什么吗?当用户单击按钮时,代码应该将用户名、密码和角色插入到我的数据库中,但是我的数据库中什么也没有出现。

namespace Login_role
{
public partial class Register : System.Web.UI.Page
{

string strConnString = ConfigurationManager.ConnectionStrings["victs"].ConnectionString;
SqlCommand com;

protected void btn_register_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(strConnString);
com = new SqlCommand();
com.Connection = con;
com.CommandType = CommandType.Text;
com.CommandText = "Insert into Login values(@UserName,@Password,@Role)";
com.Parameters.Clear();
com.Parameters.AddWithValue("@UserName", txt_UserName.Text);
com.Parameters.AddWithValue("@Password", txt_Password.Text);
com.Parameters.AddWithValue("@Role", rbtRole.SelectedValue);
if (con.State == ConnectionState.Closed)
con.Open();
com.ExecuteNonQuery();
con.Close();
lblmsg.Text = "Successfully Registered!!!";
clear();
}
private void clear()
{
txt_UserName.Text = "";
rbtRole.ClearSelection();
}
}
}

最佳答案

除非这些是您的 LOGIN 表中仅有的 3 列,否则 SQL Server(我的假设)将不会执行您的命令文本:

com.CommandText = "Insert into Login values(@UserName,@Password,@Role)";

但是,这应该引发异常(即使其余列有默认值):

"Column name or number of supplied values does not match table definition."

尝试在命令文本中列出列名称,如下所示:

string sqlCmd = "Insert into Login (UserName, Password, Role) " +
"values(@UserName,@Password,@Role)";
com.CommandText = sqlCmd;
com.CommandType = CommandType.Text; // <-- SQL doesn't have to guess!

看看这是否会有所不同。

关于c# - 无法插入数据库 asp.net C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20529989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com