(OleDb)ExecuteNonQuery错误 - 类型名称无效
我在编写asp.net代码时非常新,我无法解决问题。每次我尝试注册时都会收到以下错误:
Type name is invalid.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.OleDb.OleDbException: Type name is invalid.
Source Error:
Line 60: }
Line 61:
Line 62: cmnd.ExecuteNonQuery();
Line 63: this.cnct.Close();
Line 64: }
源代码是:
public class Connection
{
private OleDbConnection cnct;
public Connection(string dbPath)
{
this.cnct = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + dbPath);
}
/// <param name="types">'c' - VarChar, 'C' - Char, 'n' - VarNumeric, 'b' - Boolean</param>
public void Insert(string tableName, string[] inputs, char[] types)
{
string sql = "INSERT INTO " + tableName + " VALUES (";
for (int i = 0; i < inputs.Length - 1; i++)
sql += "@p" + i + ",";
sql += "@p" + (inputs.Length - 1) + ")";
this.cnct.Open();
OleDbCommand cmnd = new OleDbCommand(sql, this.cnct);
for (int i = 0; i < inputs.Length; i++)
{
if (types[i] == 'c')
{
cmnd.Parameters.Add("@p" + i, OleDbType.VarChar);
cmnd.Parameters["@p" + i].Value = inputs[i];
}
else if (types[i] == 'C')
{
cmnd.Parameters.Add("@p" + i, OleDbType.Char);
cmnd.Parameters["@p" + i].Value = inputs[i];
}
else if (types[i] == 'n')
{
cmnd.Parameters.Add("@p" + i, OleDbType.VarNumeric);
cmnd.Parameters["@p" + i].Value = double.Parse(inputs[i]);
}
else if (types[i] == 'b')
{
cmnd.Parameters.Add("@p" + i, OleDbType.Boolean);
cmnd.Parameters["@p" + i].Value = bool.Parse(inputs[i]);
}
}
cmnd.ExecuteNonQuery();
this.cnct.Close();
}
}
并使用调用Insert方法
Connection cnct = new Connection(Server.MapPath("App_Data/WMUdb.mdb"));
cnct.Insert("members", values, new char[7] { 'c', 'c', 'c', 'c', 'C', 'n', 'b' });
(哪里
values = new string[7] {"userName","my name","pswrd123","email@example.com","2000-01-01"};
)。
我该怎么做才能解决它?
非常感谢。
没有找到相关结果
已邀请:
2 个回复
导力疵谜
。 请尝试使用
。
乏摩纶誊伟