C# 执行非查询错误

C# 执行非查询错误,c#,sql,C#,Sql,我曾试图通过我的C#代码向表中插入一些值,但每次我执行它时,它都会一直工作到ExecuteNonQuery(),然后我得到一个异常,它就会中断。代码如下: connection = new SqlCeConnection("Data Source = Book base.sdf"); connection.Open(); MemoryStream ms = new MemoryStream(); pictureBox1.Image.Save(ms, System.Drawing.Imaging

我曾试图通过我的C#代码向表中插入一些值,但每次我执行它时,它都会一直工作到
ExecuteNonQuery()
,然后我得到一个异常,它就会中断。代码如下:

connection = new SqlCeConnection("Data Source = Book base.sdf");
connection.Open();

MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] im = ms.ToArray();

using (SqlCeCommand com = new SqlCeCommand("INSERT INTO Authors (IDN, Surname, Picture, Date of birth, Writer_name) VALUES (@id, @surname, @picture, @date, @name)", connection))
{
    com.Parameters.AddWithValue("@id", id.Text);
    Console.WriteLine(id.Text);

    com.Parameters.AddWithValue("@surname", surname.Text);
    Console.WriteLine(surname.Text);

    com.Parameters.AddWithValue("@picture", im);

    com.Parameters.AddWithValue("@date", dateTimePicker1.Text);
    Console.WriteLine(dateTimePicker1.Text);

    com.Parameters.AddWithValue("@name", name.Text);
    Console.WriteLine(name.Text);

    Console.WriteLine(com.ExecuteNonQuery());

那么,问题出在哪里呢?

也许您需要在出生日期前后加上括号:
,[Date of birth],Writer_name

检查idn是否为字符串,出生日期是否为表中的datetime2。
在您的查询中,还要将出生日期放在方括号内。

有什么例外?哪一行?您能提供异常详细信息和表模式吗?乍一看,我发现连接字符串不正确。不带out[]的“出生日期”可能是罪魁祸首。例外信息是什么?在出生日期前后添加[]是解决方案。是的,这解决了一个问题!非常感谢,伙计!