So führen Sie Dapper/MySql-Abfragen in C# mit benutzerdefinierten Variablen aus
P粉546257913
P粉546257913 2023-08-25 23:41:09
0
2
384
<p>Ich habe versucht, diesen Code auszuführen: </p> <pre class="brush:php;toolbar:false;">using System; mit Dapper; mit MySql.Data.MySqlClient; Namensraum DapperTests { Klassenprogramm { static void Main(string[] args) { using (var db = new MySqlConnection(@"mysql_connstr_here")) { var sql = @" set @foo := (select count(*) from table1); select table2.*, @foo from table2;"; var result = db.Query(sql); } Console.ReadLine(); } } }</pre> <p>Aber ich erhalte die folgende Ausnahme:</p> <pre class="brush:php;toolbar:false;">System.NullReferenceException: 'Die Objektreferenz ist nicht auf eine Instanz des Objekts festgelegt. ' Diese Ausnahme wird zunächst in diesem Aufrufstapel ausgelöst: MySql.Data.MySqlClient.MySqlConnection.Reader.set(MySql.Data.MySqlClient.MySqlDataReader)</pre> <p>Meine anfängliche Vermutung war, dass die Variable als SqlParameter behandelt wurde, und da ich keine Parameter übergeben habe, ist mein Code fehlgeschlagen. Gibt es eine Möglichkeit, eine solche Abfrage mit Dapper auszuführen? </p>
P粉546257913
P粉546257913

Antworte allen(2)
P粉099985373

或者你可以使用有效的SQL变量声明来编写你的SQL语句:

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

注意:此代码已在Sql Server上测试,不适用于MySql。我不使用它。

P粉277305212

我在Dapper文档中找到了这个:

所以我所需要做的就是在连接字符串中添加Allow User Variables=True。它起作用了。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!