作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个代码:
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/
我是一名优秀的程序员,十分优秀!