C# 项目运行时没有错误,但不会在数据库中添加任何内容

本文关键字:数据库 添加 任何内 运行时 项目 有错误 | 更新日期: 2023-09-27 18:34:34

我正在尝试将记录添加到我的 C# 项目中,它运行没有错误,但它不会在数据库中添加任何内容:

private void saveBtn_Click(object sender, EventArgs e)
{
    if (admNo.Text != "" & session.Text != "" & name.Text != "")
    {
        SqlConnection cn = new SqlConnection("Data Source=C:''Users''Divya Pathak''Documents''Visual Studio 2012''Projects''SchoolRecord''SchoolRecord''Database1.sdf");
        SqlCommand cmd = new SqlCommand();
        cn.Open();
        cmd.CommandText = "insert into addNew (no,session,name) values ('" + admNo.Text + "', '" + session.Text + "', '" + name.Text + "')";
        cmd.ExecuteNonQuery();
        cn.Close();
        MessageBox.Show("Record inserted successfully", "mission successfull");
    }
}

有人可以告诉为什么吗?

C# 项目运行时没有错误,但不会在数据库中添加任何内容

您需要将cm.Connection设置为cn

cm.Connection =cn;

using (var cn = new SqlCeConnection("connection string"))
using (var cmd = new SqlCeCommand("insert addNew (no,session,name) values (@no,@session,@name)", cn))
{
    cmd.Parameters.AddWithValue("@no", admNo.Text);
    cmd.Parameters.AddWithValue("@session", session.Text);
    cmd.Parameters.AddWithValue("@name", name.Text);
    cn.Open();
    cmd.ExecuteNonQuery();
}

这将帮助您为 SQL CE 编写正确的连接字符串

你有四个错误:

  1. 从不将连接与命令关联

  2. 您正在使用完整的 Sql Server 提供程序连接到 Sql Server Compact 数据库(您应该使用 SqlCe 命名空间:

  3. 你正在使用不安全的字符串串联而不是查询参数来构建查询。修复此问题!

  4. 如果引发异常,则不会关闭连接,这最终可能会将您锁定在数据库之外。您需要关闭连接作为finally块的一部分,最简单的方法是使用 using 块。

.

using (var cn = new SqlCeConnection("connection string here"))
using (var cmd = new SqlCeCommand("insert into addNew (no,session,name) values (@no,@session,@name)", cn))
{
    //guessing at column lengths:
    cmd.Parameters.Add("@no", SqlDbType.Int).Value = int.Parse(admNo.Text);
    cmd.Parameters.Add("@session", SqlDbType.NVarChar, 100).Value = session.Text;
    cmd.Parameters.Add("@name", SqlDbType.NVarChar, 60).Value = name.Text;
    cn.Open();
    cmd.ExecuteNonQuery();
}