2016-12-02 3 views
-2

У меня есть изображение, как показано ниже.Я хочу преобразовать столбец в строку

Image Example

Я хочу, чтобы сохранить каждую строку этого столбца в качестве элемента массива.

Я написал заявления a Datatable в C#.

con.Open(); 
string sql = "SELECT MA_BO_CAU_HOI FROM R_NGUOICHOI_BOCAUHOI where MA_NGUOI_CHOI="+ cbbten.SelectedIndex +""; 
SqlDataAdapter adapter = new SqlDataAdapter(sql, con); 
DataTable data = new DataTable(); 
adapter.Fill(data);    
int[] number = (int[]) data.Columns[0];  
con.Close(); 

Но это не работает. Как я могу это сделать Спасибо за вашу помощь!

+1

Я просто не вижу связи между вашим предметом и вашим кодом. Вы сказали, что хотите преобразовать в строку, но закодированы для целочисленного массива. –

+0

По-другому, вам не нужно видеть мой код. Я просто хочу спросить. Как сохранить каждую строку этого столбца (на картинке) в массив? –

+0

нам нужен ваш код, если вы хотите получить помощь, а тема и код очень сильно отличаются друг от друга. помечены как закрытые, так как непонятно, что вы спрашиваете –

ответ

2

Использовать цикл.

List<int> list = new List<int>(); 

foreach(DataRow row in data.Rows) 
{ 
    list.Add(int.Parse(row["ColumnName"]); 
} 

int[] number = list.ToArray(); 

Кроме того, если вы в курсе LINQ, вы можете сделать это на один проход:

int[] number = tbl.AsEnumerable().Select(x => int.Parse(x["YourColumnName"].ToString())).ToArray(); 

EDIT: После того, как комментарий о данных

Использование CommandParameters для извлечения данных из БД. Он защитит вас от внедрения sql. Также попробуйте связать ваше соединение (я не вижу, где определено), используя блок.

using(SqlConnection con = new SqlConnection("your conn")) 
{ 
    con.Open(); 
    string sql = "SELECT MA_BO_CAU_HOI FROM R_NGUOICHOI_BOCAUHOI where [email protected]"; 

    DataTable data = new DataTable(); 
    using(SqlDataAdapter adapter = new SqlDataAdapter()) 
    { 
     SqlCommand cmd = new SqlCommand(sql, con); 
     cmd.Parameters.AddWithValue("@Param1", cbbten.SelectedIndex); 
     adapter.SelectCommand = cmd; 

     adapter.Fill(data);   
    } 
} 
+0

, хотя ваш ответ будет работать для пользователя, я думаю, что у них возникают проблемы с получением данных, а также подтвердил ваш ответ, поскольку он технически корректен на основе темы –

+0

@SimonPrice I исправлено его код о получении данных тоже. – mybirthname

+1

Мне нравится прикосновение LINQ, я думаю, если бы я был в счастливом настроении сегодня, я бы, вероятно, помог, как и вы. :) –

Смежные вопросы