标签: oledbparameter

OleDbParameters和参数名称

我有一个SQL语句,我正在通过OleDb执行,语句是这样的:

INSERT INTO mytable (name, dept) VALUES (@name, @dept);
Run Code Online (Sandbox Code Playgroud)

我正在向OleDbCommand添加参数,如下所示:

OleDbCommand Command = new OleDbCommand();
Command.Connection = Connection;

OleDbParameter Parameter1 = new OleDbParameter();
Parameter1.OleDbType = OleDbType.VarChar;
Parameter1.ParamterName = "@name";
Parameter1.Value = "Bob";

OleDbParameter Parameter2 = new OleDbParameter();
Parameter2.OleDbType = OleDbType.VarChar;
Parameter2.ParamterName = "@dept";
Parameter2.Value = "ADept";

Command.Parameters.Add(Parameter1);
Command.Parameters.Add(Parameter2);
Run Code Online (Sandbox Code Playgroud)

我得到的问题是,如果我添加参数以反过来命令,那么列将填充错误的值(即名称在dept列中,反之亦然)

Command.Parameters.Add(Parameter2);
Command.Parameters.Add(Parameter1);
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果参数值只是按照添加命令的顺序插入到表中,参数名称的重点是什么?参数名称似乎多余?

.net c# oledb oledbparameter oledbcommand

10
推荐指数
2
解决办法
9967
查看次数

C#访问OleDb条件表达式中的数据类型不匹配

请您检查以下代码是否存在导致"条件表达式中的数据类型不匹配"异常的错误?我似乎无法找到问题的根源......

在此输入图像描述

*record.Date可空DateTime?类型的*被明确地转换为DateTime

*record.Date被设置为可为空,用于程序中的其他用途.但是从DateTimePicker检索INSERT操作record.Date集合,因此该方法的值永远不应为null.record.Date

哪里

在此输入图像描述

和(如果你想知道的话)

在此输入图像描述


从我的Access文件(设计视图):

在此输入图像描述


谢谢!


这是AddRecord方法.谢谢!

public static int AddRecord(Record record)
{
    OleDbConnection connection = LABMeetingRecordsDB.GetConnection();
    string insertStatement = "INSERT INTO DocumentInfo " +
                             "([FileName], [Date], [Subject], [Type]) " +
                             "VALUES (?, ?, ?, ?)";
    try {
        OleDbCommand insertCommand = new OleDbCommand(insertStatement, connection);
        insertCommand.Parameters.AddWithValue("@FileName", record.FileName);
        insertCommand.Parameters.AddWithValue("@Date", (DateTime)record.Date);
        insertCommand.Parameters.AddWithValue("@Subject", record.Subject);
        insertCommand.Parameters.AddWithValue("@Type", record.getDBType());

        connection.Open();
        insertCommand.ExecuteNonQuery();

        string selectStatement = "SELECT IDENT_CURRENT('DocumentInfo') FROM DocumentInfo"; …
Run Code Online (Sandbox Code Playgroud)

c# ms-access oledbexception oledbparameter

4
推荐指数
1
解决办法
2万
查看次数

在C#中将参数与OleDbDataAdapter一起使用

我正在使用OleDb填充数据表。我正在尝试使用参数化查询,但它似乎不适用于OleDbDataAdapter。有人有什么建议吗?

cmd.CommandText = "SELECT A,B,C,D FROM someTable WHERE A=@A AND D BETWEEN @D1 AND @D2";
cmd.Parameters.Add("@A", OleDbType.VarChar).Value = "1234567";
cmd.Parameters.Add("@D1", OleDbType.DBDate).Value = "02/01/2011";
cmd.Parameters.Add("@D2", OleDbType.DBDate).Value = "01/31/2012";

A first chance exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll
System.Data.OleDb.OleDbException (0x80040E11): [DB2] SQL0206N  "@A" is not valid in the context where it is used.  SQLSTATE=42703
Run Code Online (Sandbox Code Playgroud)

c# oledb oledbparameter

1
推荐指数
1
解决办法
7006
查看次数

这看起来有什么问题?

private int DBUpdate(){

DAL dal = new DAL();
string upd = "UPDATE [RPform] SET [ProjectName] = '@pname', [ProjectCode] = '@pcode', [Country] = @cnt, ";
upd += "[StartDate] = '@startdate', [FinishDate] = '@finishdate', [TotalParticipants] = @totpart, [ArrivalDate] = '@arrivedate', ";
upd += "[AirportTransfer] = @airtran, [AirportDate] = '@airdate', [AirportHours] = @airhour, [AirportMinutes] = @airmin, ";
upd += "[Problems] = '@problems', [FirstDayActivities] = '@fdayact' ";
upd += "WHERE [UserID]=@usid";

    OleDbParameter[] parm = new OleDbParameter[] { 
    new OleDbParameter("@pname",projname.Text),
    new OleDbParameter("@pcode",projcode.Text),
    new OleDbParameter("@cnt",countries.SelectedIndex),
    new …
Run Code Online (Sandbox Code Playgroud)

.net c# oledbparameter

0
推荐指数
1
解决办法
549
查看次数

空参考例外

此代码生成Null Reference异常.异常出现在初始化参数数组的行.可能是什么问题?我不知道如何遵循堆栈跟踪并对其执行任何逻辑.提前致谢.

DAL dal = new DAL();

    string SQL = @"INSERT INTO Assets ([AssetName],[AssetType],[Model],[Description],
                                                          [PurchaseValue],[SalvageValue],[Currency],[DateAcquired,[DateRetire],[ImagePath],
                                                          [InUse])
                                                          VALUES (?,?,?,?,?,?,?,?,?,?,?)";

    OleDbParameter[] par = new OleDbParameter[]{ 
    new OleDbParameter("@assetname",name.Text),
    new OleDbParameter("@assettype",assettypes.SelectedValue.ToString()),
    new OleDbParameter("@model",model.Text),
    new OleDbParameter("@description",description.Text),
    new OleDbParameter("@purchasevalue",purchaseval.Value),
    new OleDbParameter("@salvagevalue",salvageval.Value),
    new OleDbParameter("@currency",currencies.SelectedIndex),
    new OleDbParameter("@dateacquired",purchasedate.Value),
    new OleDbParameter("@dateretire",purchasedate.Value.AddYears((int)lifetime.Value)),
    new OleDbParameter("@imagepath","N/A"),
    new OleDbParameter("@addedby",MDIParent1.User.ID)
    };
Run Code Online (Sandbox Code Playgroud)

.net c# oledbparameter nullreferenceexception

0
推荐指数
1
解决办法
702
查看次数