C# listbox.selectedItem. Как получить выделенную строку считанную из бд access
Всем привет. Ребята, помогите разобраться. Начал изучать с#. Задача написать программу которая будет считывать информацию (база access) в listbox и ( самое главное) при выделении строки , получить эту строку ( знаю что это делается с помощью selectedItem), что бы совершать с ней какие нить операции.
{ namespace TEMP { public partial class Form1 : Form { public string sqlQuet = "SELECT [Name Sections] FROM [List of Partition Engine Room]", connectionPathBD = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\TEMP\MarinePart\buck up\MeriTime\Common.mdb";
public Form1()
{
InitializeComponent();
OleDbDataAdapter DA = new OleDbDataAdapter(sqlQuet, connectionPathBD);
DataSet DS = new DataSet();
DA.Fill(DS, "[List of Partition Engine Room]");
listBox1.DataSource = DS.Tables[0].DefaultView;
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Здесь надо прописать что-то, что будет считывать строку через
listBox1.selectItem;
}
}
}
}
Ответы (1 шт):
Во-первых, нужно заключить в кавычки путь к базе данных, так как он содержит пробелы:
Data Source = \"C:\\TEMP\\MarinePart\\buck up\\MeriTime\\Common.mdb\"
Кавычки экранированы: \".
Также можно использовать одинарные кавычки. Их не нужно экранировать:
Data Source = 'C:\\TEMP\\MarinePart\\buck up\\MeriTime\\Common.mdb'
Во-вторых, провайдер Microsoft.Jet.OLEDB.4.0 давным-давно устарел. Он использовался с версиями Access 97-2003.
Для более новых версий Аксеса используется провайдер Microsoft.ACE.OLEDB.12.0.
В-третьих, если есть сомнения по поводу того, как правильно записать строку соединения, то следует использовать специальный класс для её конструирования:
var builder = new OleDbConnectionStringBuilder();
builder.Provider = "Microsoft.ACE.OLEDB.12.0";
builder.DataSource = "C:\\TEMP\\MarinePart\\buck up\\MeriTime\\Common.mdb";
string connectionString = builder.ToString();
Билдер автоматически сделает экранирование, где нужно.