如何从mysql结果中读取某些数据C# [英] How to read certain data from mysql results in C#

查看:397
本文介绍了如何从mysql结果中读取某些数据C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我不知道如何在c#中处理这个问题。我想从C#

  > con = new MySqlConnection(server = localhost; database = Customers; uid = root; pwd = ******); 
con.Open();
cmd = new MySqlCommand(SELECT name,lastname FROM customer WHERE ID_customer =?Parname;,con);
cmd.Parameters.Add(?Parname,MySqlDbType.Float).Value = customer_card;
cmd.ExecuteNonQuery();
con.Close();

我想能够读取结果,只有一个结果,在2字符串变量。如何获取数据并保存?



谢谢

解决方案

p>对于返回一行的查询,从一个查询中获取多个字符串的快速方法如下:

  con = new MySqlConnection(server = localhost; database = Customers; uid = root; pwd = ******); 
try {
con.Open();
cmd = new MySqlCommand(SELECT concat(name,'|',lastname)FROM customer WHERE ID_customer =?Parname;,con);
cmd.Parameters.Add(?Parname,MySqlDbType.Float).Value = customer_card; //你确定ID是float吗?这是我第一次看到这样的东西!
var tokens =((String)cmd.ExecuteScalar())。Split('|');
var firstName = tokens [0];
var lastName = tokens [1];
Console.Writeln(First = {0},Last = {1},firstName,lastName);
} finally {
con.Close();
}

想法是在MySql端将两个字符串合并成一个,他们回来在C#侧。这个技巧可以让你避免循环阅读器,关闭它,等等。它假定名称不包含'|'个字符。


I want to make certain query to mysql from C# so I can get back for example name and lastname.

I don't know how to handle this in c# and I want to minimize sqlinjection.

Here is my code:

con = new MySqlConnection("server=localhost;database=Customers;uid=root;pwd=******");
con.Open();
cmd = new MySqlCommand("SELECT name,lastname FROM customer WHERE ID_customer= ?Parname;", con);
cmd.Parameters.Add("?Parname", MySqlDbType.Float).Value = customer_card;
cmd.ExecuteNonQuery();
con.Close();

I want to be able for example to read results and it will be only one result, in the 2 string variables. How to get trough the data and save it?

Thank you

解决方案

A cheating but quick way of getting several strings out of a query returning one row would be as follows:

con = new MySqlConnection("server=localhost;database=Customers;uid=root;pwd=******");
try {
    con.Open();
    cmd = new MySqlCommand("SELECT concat(name,'|',lastname) FROM customer WHERE ID_customer= ?Parname;", con);
    cmd.Parameters.Add("?Parname", MySqlDbType.Float).Value = customer_card; // Are you sure that the ID is float? That's the first time I see anything like that!
    var tokens = ((String)cmd.ExecuteScalar()).Split('|');
    var firstName = tokens[0];
    var lastName = tokens[1];
    Console.Writeln("First={0}, Last={1}", firstName, lastName);
} finally {
    con.Close();
}

The idea is to combine both strings into one on the MySql side, and split them back on the C# side. This trick lets you avoid looping through a reader, closing it, and so on. It assumes that the names do not contain '|' characters.

这篇关于如何从mysql结果中读取某些数据C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆