我一直在尝试许多不同的命令和安排。这是一个将新联系人输入数据库的简单程序。我的第一个数据库东西我有简单的文本框,只接受字母,然后只接受数字的邮政编码。不确定为什么我的“executenonquery()”说“连接属性尚未初始化”。我错过了什么?
string connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Documents and Settings\\Sales\\My Documents\\Google Drive\\Home\\Contacts\\Contacts.accdb";
string command = "INSERT INTO [Contacts] (First Name, Last Name, Address, City, State/Province, ZIP/Postal Code) VALUES (@fname, @lname, @address, @city, @state, @zip)";
OleDbConnection conn = new OleDbConnection(connection);
OleDbCommand comm = new OleDbCommand();
OleDbDataAdapter da = new OleDbDataAdapter();
conn.Open();
comm.Parameters.AddWithValue("@First Name", fname);
comm.Parameters.AddWithValue("@Last Name", lname);
comm.Parameters.AddWithValue("@Address", address);
comm.Parameters.AddWithValue("@City", city);
comm.Parameters.AddWithValue("@State/Province", state);
comm.Parameters.AddWithValue("@ZIP/Postal Code", zip);
comm.ExecuteNonQuery();
conn.Close();
答案 0 :(得分:3)
更改此行:
OleDbCommand comm = new OleDbCommand();
......对这两行:
OleDbCommand comm = new OleDbCommand(conn);
comm.commandText = command;
您的命令对象需要引用一个打开的连接(我们通过使用带有连接对象的构造函数获得),并且您的命令对象还需要设置其命令文本属性(否则系统不知道您正在尝试运行的查询。
编辑:哎呀,暂时没有使用这些家伙。你真正需要的就是这一行:
OleDbCommand comm = new OleDbCommand(command, conn);