gpt4 book ai didi

c# - 为什么我没有收到任何错误,但数据库没有插入记录?

转载 作者:搜寻专家 更新时间:2023-10-30 21:57:52 25 4
gpt4 key购买 nike

我正在尝试在 C# 的控件中向数据库添加一条记录:

public partial class ctrl_Register : UserControl
{
public ctrl_Register()
{
InitializeComponent();
}

private void btn_reg_Click(object sender, EventArgs e)
{
bool ok = false;
int col = 1;
if (tBox_username.Text != "")
{
if (tBox_password.Text != "")
{
if (cBox_colour.Text != "")
{
ok = true;
}
}
}

if (ok)
{
using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.data2cString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = @"INSERT INTO [Table](Id,username,password,colour,bestTime) VALUES ('"+tBox_username.Text+"','"+tBox_password.Text+"','"+cBox_colour.Text+"')";

try
{
conn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("added");
}
catch (SqlException s)
{
MessageBox.Show(s.Message.ToString(), "Error Message");
}
}
}
}
else
{
MessageBox.Show("no insert");
}
}
}

出现了“已添加”消息框,因此代码肯定到了这一点。然而,当我去检查我的数据库时,没有新记录。

这是我的创建表代码:

CREATE TABLE [dbo].[Table] 
(
[Id] INT IDENTITY (0, 1) NOT NULL,
[username] VARCHAR (50) NOT NULL,
[password] VARCHAR (50) NOT NULL,
[colour] VARCHAR (50) DEFAULT ('Orange') NULL,
[bestTime] INT DEFAULT ((0)) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);

这绝对是设置文件中正确的连接字符串。但是,当我转到数据库资源管理器中的 data2.mdf 文件并转到表的“显示数据”时,只显示 NULL。

最佳答案

首先,如果您要编写 SQL 代码。检查错误。您为五列提供了三个值,因此这可能是一个错误。

其次,使用参数化查询。不要将用户输入直接放入查询字符串中。这是危险的,也是 SQL 优化器的障碍。

第三,不要将表命名为Table。那是一个保留字。使用能更好地描述实体的非保留词。

关于c# - 为什么我没有收到任何错误,但数据库没有插入记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34118263/

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