【问题标题】:Exception occurs in ExecuteNonQuery functionExecuteNonQuery 函数发生异常
【发布时间】:2022-08-17 16:51:43
【问题描述】:

我试图在我的 MS SQL 数据库中获取一些数据,但不幸的是,ExecuteNonQuery 函数会导致“错误”或更准确地说是异常并停止程序。为了快速了解一下,我目前正在做的项目是一个简单的日历,您应该可以在其中保存约会。我做这个项目是为了让 C# 更广为人知,因为我工作不多有了它,如果我犯了简单的错误,请原谅我。

这是发生异常的 Event From 类的代码:

using System.Data.SqlClient;

namespace Kalender
{
    public partial class EventForm : Form
    {
        public EventForm()
        {
            InitializeComponent();
        }

        public string conString = \"Data Source=WS-UN-010122;Initial Catalog=calender;Integrated Security=True\";

        private void EventForm_Load(object sender, EventArgs e)
        {
            txtdat.Text = UserControlDays.static_tag + \".\" + Form1.static_monat + \".\" + Form1.static_jahr;
        }

        private void btnsave_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(conString);
            con.Open();
            string sql = \"INSERT INTO tbl_calender(Ereignis,Datum)values(?,?)\";
            SqlCommand cmd = con.CreateCommand();
            cmd.CommandText = sql;
            cmd.Parameters.AddWithValue(\"Ereignis\", txtevent.Text);
            cmd.Parameters.AddWithValue(\"Datum\", txtdat.Text);
            cmd.ExecuteNonQuery(); // <--------- Exception
            MessageBox.Show(\"gespeichert\");
            cmd.Dispose();
            con.Close();
        }
    }
}

这是我得到的消息。如果你问它是用哪种语言写的,它是德语

  • 请包括异常错误消息。
  • 究竟是什么错误?难道是因为)values(之间缺少空格?
  • 如果您甚至不分享有关“错误”的信息,您还指望任何人帮助您吗?

标签: c# executenonquery


【解决方案1】:

SQL Server 默认使用命名参数(不是位置参数);改为尝试:

const string sql = "INSERT INTO tbl_calender(Ereignis,Datum) values(@Ereignis,@Datum)";

可能也比较喜欢看Dapper之类的工具,这里会省不少苦头……

using var con = new SqlConnection(conString);
con.Execute(sql, new { Ereignis = txtevent.Text, Datum = txtdat.Text });

最后的想法:考虑将日期解析为DateTime将其发送到数据库;数据库应该不是负责有关字符串格式的决策。

【讨论】:

    猜你喜欢
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多