来自 MSDN:
当 CommandType 设置为 Text 时,ODBC 的 .NET Framework 数据提供程序不支持将命名参数传递到 SQL 语句或 OdbcCommand 调用的存储过程。在这两种情况下,请使用问号 (?) 占位符。例如:
SELECT * FROM Customers WHERE CustomerID = ?
将您的查询重写为
OdbcConnection conn = new OdbcConnection(connString);
String query = "INSERT INTO customer (custId, custName, custPass, "+
"custEmail, custAddress, custAge) VALUES (" +
"?, ?, ?, ?, ?, ?)";
参数的顺序很重要!
编辑:参数可以这样添加:
OdbcCommand exe = new OdbcCommand(query, conn);
exe.Parameters.Add("ID", OdbcType.UniqueIdentifier).Value = id;
exe.Parameters.Add("Name", OdbcType.VarChar).Value = name;
exe.Parameters.Add("Pass", OdbcType.VarChar).Value = pass;
exe.Parameters.Add("Email", OdbcType.VarChar).Value = email;
exe.Parameters.Add("Address", OdbcType.VarChar).Value = address;
exe.Parameters.Add("Age", OdbcType.Int).Value = age;