我尝试过用reader[1]或者reader.Getstring(1)
但报错没有数组
因为我要查询TEXT
INT的数据可以准确查出
`string strcon = "server=127.0.0.1;User Id=233;password=233;Database=233";
string sql = $"select count(*) from Users where name='" + Name.Text + "'"; //Name.Text是前台文本框用于输入name查询
MySqlConnection conn = new MySqlConnection(strcon);
conn.Open();
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader reader = cmd.ExecuteReader();
int id;
string mail=null;
string Name1=null;
string PASSWORD=null;
reader.Read();
id = reader.GetInt32(0);
while (true)
{
try
{
if (reader.HasRows)
{
while (reader.Read())
{
mail = reader["mail"].ToString(); //这里用reader[1]和reader.Getstring(1)不行
Name1 = reader["name"].ToString();
PASSWORD = reader["password"].ToString();
break;
}
}
}
catch { }
MessageBox.Show(id.ToString() + " " + mail + " " + Name1 + " " + PASSWORD);
}`
id列代号0;mail列代号1;name列代号2;password代号3
我的计算机上没有mysql,用sql server写了一个,应该差不多。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace Q1079274
{
class Program
{
static void Main(string[] args)
{
SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=Q1079274db;Integrated Security=True;Pooling=False");
conn.Open();
SqlCommand cmd = new SqlCommand("select * from table1", conn);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
string[] arr = new string[reader.FieldCount];
for (int i = 0; i < reader.FieldCount; i++)
{
arr[i] = reader.GetValue(i).ToString();
}
Console.WriteLine(string.Join(",", arr));
}
}
}
}
DataTable dt=new DataTable();
dt.Columns.Add("a1");
dt.Columns.Add("a2");
dt.Columns.Add("a3");
dt.Columns.Add("a4");
dt.Rows.Add();
dt.Rows[0]["a1"] = 1;
dt.Rows[0]["a2"] = "adwdwssss";
dt.Rows[0]["a3"] = "dawdawd";
dt.Rows[0]["a4"] = 1;
var Arr = dt.Rows[0].ItemArray;