임 상태 도구를 조금 만들려고합니다. 여러 쿼리 (약 4-5)의 결과를 가져와야합니다. 일반적인 연결 설정 및 '데이터 읽기 방법'은 이미 완료되었지만 다른 쿼리가 실행 된 방법을 파악할 수 없습니다.C# Mysql 다중 쿼리
검색하는 동안 찾은 모든 것은 SqlClient입니다. 임은 이것으로 완전히 과대 평가했다. 여기
지금까지 내 코드입니다 (환자 수, 여기에 초보자 메신저) :private void button1_Click(object sender, EventArgs e)
{
if(listView1.Items.Count > 1)
{
listView1.Items.Clear();
}
var listMember = new List<string>{};
var listOnline = new List<string>{};
// SQL PART //
string connString = "Server=10*****;Port=3306;Database=e***;Uid=e***;password=********************;";
MySqlConnection conn = new MySqlConnection(connString);
MySqlCommand command = conn.CreateCommand();
command.CommandText = "SELECT fullname,online FROM member WHERE active = '1' ORDER BY online DESC";
try
{
conn.Open();
}
catch (Exception ex)
{
listView1.Items.Add("Error: " + ex);
}
MySqlDataReader reader = command.ExecuteReader();
while(reader.Read())
{
listMember.Add(reader["fullname"].ToString());
listOnline.Add(reader["online"].ToString());
}
conn.Close();
// SQL ENDING //
// SET ENTRIES TO LISTVIEW //
int counter = 0;
foreach(string member in listMember)
{
ListViewItem item = new ListViewItem(new[] { member, listOnline.ElementAt(counter) });
item.ForeColor = Color.Green;
listView1.Items.Add(item);
counter++;
}
}
임 디자인/레이아웃이 결국처럼, 그래서 난 그냥을하고 싶습니다 방법을 정말 확실하지 결과를 SQL 파트의 목록에 추가하여 나중에 목록에서 데이터를 처리하십시오.
conn.Close() 이후에 완전히 새로운 연결을 설정해야합니까? 아니면 다른 방법이 있습니까? 나는 상상할 수 있습니다 : 자신의 연결을 가진 5 개의 쿼리, 시도, catch 및 2 개의 루프 ... 이것은 5 개의 쿼리에서 결과를 얻는 데 약 100-200 라인을 얻을 것입니다. 그런 쉬운 일을 하기엔 너무 지나치지 않습니까?
도움이 되었기를 바랍니다. 인사말.
새로운 의견에 따라 내 최신 코드 :
위 :
public partial class Form1 : Form
{
public static string connString = "Server=10****;Port=3306;Database=e****;Uid=e****;password=****;";
public Form1()
{
InitializeComponent();
MySqlConnection conn = new MySqlConnection(connString); // Error gone!
}
바디 부분 :
public void QueryTwoFields(string s, List<string> S1, List<string> S2)
{
try
{
MySqlCommand cmd = conn.CreateCommand(); // ERROR: conn does not exist in the current context.
cmd.CommandType = CommandType.Text;
string command = s;
cmd.CommandText = command;
MySqlDataReader sqlreader = cmd.ExecuteReader();
while (sqlreader.Read())
{
S1.Add(sqlreader[0].ToString());
S2.Add(sqlreader[1].ToString());
}
sqlreader.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private void button1_Click(object sender, EventArgs e)
{
if(listView1.Items.Count > 1)
{
listView1.Items.Clear();
}
var listMember = new List<string>{};
var listOnline = new List<string>{};
using (conn) // ERROR: conn does not exist in the current context.
{
conn.Open();
///...1st Query
QueryTwoFields("SELECT fullname,online FROM member WHERE active = '1' ORDER BY online DESC",listMember,listOnline);
//...2nd query
//QueryTwoFields("your new Select Statement", otherList, otherList);
}
}
좋은 질문과 답변. – Drew