私は製品クラスを持っており、AccessデータベースでDapperを評価しようとしました。選択、削除、および挿入操作は正常ですが、更新操作に問題があります。Dapper with Access、部分的に動作しない更新文
私は更新されますProductNumberそれが動作します(updateStatement2)と説明に基づいて説明を変更しようとすると、以下のコードのみ)片道で働いて、私はProductNumberを変更しようとしたときに基づいています説明(updateStatement1)正常に動作せず、ProductNumberが更新されません。それは私にとっては奇妙なことです。それはバグですか、何か不足していますか?私のデータベースは基本的なもので、主キーは設定されていません。私はDapperのバージョン1.50.2を使用しています
public class Products
{
public string ProductNumber { get; set; }
public string Description { get; set; }
}
static void Main(string[] args)
{
using (var con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"))
{
Products product2 = new Products();
product2.ProductNumber = "P2";
product2.Description = "TestProduct2Changed";
var updateStatement2 = @"Update Products Set Description = @Description Where ProductNumber = @ProductNumber";
int outp2 = con.Execute(updateStatement2, product2);
Products product1 = new Products();
product1.ProductNumber = "P3Changed";
product1.Description = "TestProduct3";
var updateStatement1 = @"Update Products Set ProductNumber = @ProductNumber Where Description = @Description";
int outp1 = con.Execute(updateStatement1, product1);
}
}
(詳細については、以下の私のコードを参照)
下のスクリーンショットを添付しています。これは、ADOのAccessコマンドは、彼らがSQLクエリに表示されるのと同じ順序で存在することがパラメータを必要とするように見えます私のデータベースのスクリーンショット
値に空白が含まれていますか(説明)? – Shyju
動的パラメータのように渡すと機能します。私はDapperのいくつかの問題を考えています。 con.Execute(updateStatement2、new {ProductNumber = "P3Changed"、Description = "TestProduct3"}); – RobinAtTech