我正在尝试将记录添加到 SQL Server 数据库。该连接适用于除一个之外的任何其他表。这是我的代码:private void saveCurrent(){ try // Save entry into the database. { string query = "INSERT INTO entries VALUES (@Date, @Tags, @Entry, @User)"; using (connection = new SqlConnection(connectionString)) using (SqlCommand command = new SqlCommand(query, connection)) { connection.Open(); command.Parameters.AddWithValue("@Date", System.DateTime.Now.ToLongDateString()); command.Parameters.AddWithValue("@Tags", txtTags.Text); command.Parameters.AddWithValue("@Entry", richEntryBox.Text); command.Parameters.AddWithValue("@User", Form1.userName); command.ExecuteNonQuery(); isDirty = false; } } catch (Exception exception) { MessageBox.Show("There was an error saving this entry: " + exception.ToString()); }错误是:System.Data.SqlClient.SqlException (0x8-131904):列名或提供的值的数量与表定义不匹配。所有列的类型都是nvarchar(50)和nvarchar(MAX)。我试图只输入文本信息,没有二进制文件。数据集显示该表有一个“照片”列,但它可以为空并且我没有使用它(由于某种原因,我无法让 VS2017 删除该列)。我已将数据集更改为不包含“照片”字段,但仍然收到错误消息。对解决方案的任何推动将不胜感激。此处包含数据集的快照。我的数据集,其中我删除了照片列:
1 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
如果您的数据库仍有该photos
字段,则需要明确指定要插入的列。
因此,将您的插入更改为:
string query = "INSERT INTO entries (date, tags, entry, user) VALUES (@Date, @Tags, @Entry, @User)";
通常,您希望明确地插入插入。如果有人在标签之后和进入数据库之前添加一列会发生什么?这会破坏你的代码。
- 1 回答
- 0 关注
- 169 浏览
添加回答
举报
0/150
提交
取消