C# 如何将链接到其他表的行添加到MS Access表中?
我有MS Access数据库,我必须使用Access和这个结构名称来回答这个问题: 我的程序允许向每个表中添加行。要使用数据库,我使用OleDbDataAdapter。此代码成功地将行添加到desease:C# 如何将链接到其他表的行添加到MS Access表中?,c#,database,ms-access,oledb,oledbcommand,C#,Database,Ms Access,Oledb,Oledbcommand,我有MS Access数据库,我必须使用Access和这个结构名称来回答这个问题: 我的程序允许向每个表中添加行。要使用数据库,我使用OleDbDataAdapter。此代码成功地将行添加到desease: connection.Open(); OleDbCommand command = new OleDbCommand("INSERT INTO " + "desease (title, description) VALUES (?, ?)", connection); comman
connection.Open();
OleDbCommand command = new OleDbCommand("INSERT INTO "
+ "desease (title, description) VALUES (?, ?)", connection);
command.Parameters.AddWithValue("title", "input text");
command.Parameters.AddWithValue("description", "input text");
adapter.InsertCommand = command;
adapter.InsertCommand.ExecuteNonQuery();
connection.Close();
但我也需要做同样的访问表。好吧,我试试这个:
connection.Open();
OleDbCommand command = new OleDbCommand("INSERT INTO Посещения " +
"(patient ID, doctor ID, desease ID, visit date) " +
"VALUES (?, ?, ?, ?)", connection);
command.Parameters.AddWithValue("patient ID", "1");
command.Parameters.AddWithValue("doctor ID", "1");
command.Parameters.AddWithValue("desease ID", "1");
command.Parameters.AddWithValue("visit date", "01.05.1999");
adapter.InsertCommand = command;
adapter.InsertCommand.ExecuteNonQuery();
connection.Close();
和get error:插入到指令中的语法错误
那么什么是访问的正确命令呢?我必须向参数发送哪些数据类型?尤其是身份证。在数据库中,他们有数字类型,在翻译中称之为。就诊日期也是日期类型
我找不到有关此的任何信息。如果您的列名包含多个单词,则需要将它们放在方括号中,如[患者ID]、[医生ID]、[疾病ID]和[就诊日期] 作为最佳实践,将他们的名字改为一个单词 还可以使用自动处理连接和命令,而不是手动调用Close方法
using(var connection = new OleDbConnection(conString))
using(var command = connection.CreateCommand())
{
commmand.CommandText = @"INSERT INTO Посещения([patient ID],[doctor ID], [desease ID], [visit date])
VALUES(?, ?, ?, ?)";
command.Parameters.AddWithValue("patient ID", "1");
command.Parameters.AddWithValue("doctor ID", "1");
command.Parameters.AddWithValue("desease ID", "1");
command.Parameters.AddWithValue("visit date", "01.05.1999");
adapter.InsertCommand = command;
connection.Open();
adapter.InsertCommand.ExecuteNonQuery();
}
根据您的列名,我认为前3列应该是数字类型而不是字符,最后一列应该更适合DATETIME类型。太简单了。非常感谢。伟大的现在我可以用正确的方法来做了。再次感谢。