Bagaimana untuk menjalankan pertanyaan Dapper/MySql dalam C# menggunakan pembolehubah yang ditentukan pengguna
P粉546257913
P粉546257913 2023-08-25 23:41:09
0
2
386
<p>Saya telah cuba menjalankan kod ini: </p> <pre class="brush:php;toolbar:false;">menggunakan Sistem; menggunakan Dapper; menggunakan MySql.Data.MySqlClient; ruang nama DapperTests { Program kelas { lompang statik Utama(rentetan[] args) { menggunakan (var db = MySqlConnection baharu(@"mysql_connstr_here")) { var sql = @" set @foo := (pilih kiraan(*) daripada jadual1); pilih jadual2.*, @foo daripada jadual2;"; var result = db.Query(sql); } Console.ReadLine(); } } }</pre> <p>Tetapi saya mendapat pengecualian berikut:</p> <pre class="brush:php;toolbar:false;">System.NullReferenceException: 'Rujukan objek tidak ditetapkan kepada contoh objek. ' Pengecualian ini pada mulanya dilemparkan dalam timbunan panggilan ini: MySql.Data.MySqlClient.MySqlConnection.Reader.set(MySql.Data.MySqlClient.MySqlDataReader)</pre> <p>Tekaan awal saya ialah pembolehubah itu dianggap sebagai SqlParameter dan kerana saya tidak melepasi sebarang parameter, kod saya gagal. Adakah terdapat cara untuk menjalankan pertanyaan seperti ini menggunakan Dapper? </p>
P粉546257913
P粉546257913

membalas semua(2)
P粉099985373

Atau anda boleh menulis pernyataan SQL anda menggunakan pengisytiharan pembolehubah SQL yang sah:

var sql = @"declare @foo int = 0; select @foo;";

Nota: Kod ini telah diuji pada Pelayan Sql dan tidak berfungsi pada MySql. Saya tidak menggunakannya.

P粉277305212

Saya dapati ini dalam dokumentasi Dapper:

Jadi apa yang perlu saya lakukan ialah menambah Allow User Variables=True dalam rentetan sambungan. Ianya berhasil.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!