gpt4 book ai didi

c# - 我怎样才能简化代码? (数据集结果)

转载 作者:行者123 更新时间:2023-11-29 10:05:11 25 4
gpt4 key购买 nike

我有一个代码:

MySqlCommand cmd = connection.CreateCommand();
cmd.CommandText = "SELECT nom, prenom from liste_personnels where mail ='" + mailTest + "'";
MySqlDataAdapter adap = new MySqlDataAdapter(cmd);
DataSet ds = new DataSet();
adap.Fill(ds);
nom = ds.Tables[0].Rows[0].ItemArray[0].ToString();
prenom = ds.Tables[0].Rows[0].ItemArray[1].ToString();

我找到了如何提取变量 nom 和 prenom,但我认为这很复杂。可以简化我的代码 - dataSet 的结果,将我的两个变量分开 et 放在一个表中吗?

感谢您的帮助。

最佳答案

DataSet 在这里似乎有点过分了;我会使用一个简单的MySqlDataReader。 (另外,使用参数来防止SQL注入(inject)。)

string nom = null, prenom = null;
using (var cmd = connection.CreateCommand())
{
// create the command and bind the parameter; this prevents SQL injection
cmd.CommandText = "SELECT nom, prenom from liste_personnels where mail = @mail";
cmd.Parameters.AddWithValue("@mail", mailtest);
using (var reader = cmd.ExecuteReader())
{
// check if a row was found in the DB; you may need to handle if it's false
if (reader.Read())
{
// read the data
nom = reader.GetString(0);
prenom = reader.GetString(1);
}
}
}

最后,如果您可以将另一个库添加到您的项目中,我会使用 Dapper简化上面的代码:

var result = connection.Query(
"SELECT nom, prenom from liste_personnels where mail = @mailtest",
new { mailtest })
.SingleOrDefault();
var nom = (string) result?.nom;
var prenom = (string) result?.prenom;

关于c# - 我怎样才能简化代码? (数据集结果),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52055867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com