C# + Access + Select

  • Автор темы Smorodin
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

Smorodin

Гость
#1
Есть таблица. В ней поля:
id - Счетчик
name - Текстовый
vuz_id - Числовой.

Есть код:
Код:
		public Zvons(int vid)
{
InitializeComponent();
//MessageBox.Show(vid.ToString());
string connectionString = "provider=Microsoft.JET.OLEDB.4.0;" + "data source = c:\\db.mdb";
string commandString = "select `id`, `name` from zvon WHERE `vuz_id`='" + vid + "'";
OleDbDataAdapter DataAdapter = new OleDbDataAdapter(commandString, connectionString);

DataSet DataSet = new DataSet();

DataAdapter.Fill(DataSet, "zvon");

DataTable dataTable = DataSet.Tables[0];


foreach (DataRow dataRow in dataTable.Rows)
{
...			  
}
}
Ругается так:
Таблица 'zvon' открыта с монопольным доступом пользователем 'Admin' на машине 'SMORODIN'.
и показывает на строку:
Код:
DataAdapter.Fill(DataSet, "zvon");
В чем ошибка? Я еще только учусь... :huh:
 
P

Pasha

Гость
#2
Для: Smorodin
У тебя при этом база открыта в Access? Если да, то закрой перед запуском проги.
 
S

Smorodin

Гость
#3
Ты- гений :ph34r:
Еще возник вопрос: а можно средствами C# узнать, открыта база или нет? :)

Еще проблема:
Код:
			string connectionString = "provider=Microsoft.JET.OLEDB.4.0;" + "data source = c:\\db.mdb";
string commandString = "SELECT pars.id, pars.start, pars.end FROM pars WHERE (((pars.zvon_id)=2))";
OleDbDataAdapter DataAdapter = new OleDbDataAdapter(commandString, connectionString);

DataSet DataSet = new DataSet();

DataAdapter.Fill(DataSet, "pars");

DataTable dataTable = DataSet.Tables[0];

int i = 0;


foreach (DataRow dataRow in dataTable.Rows)
{
}
Ругается "IErrorInfo.GetDescription failed with E_FAIL(0x80004005)."
и показывает на "DataAdapter.Fill(DataSet, "pars");"
 
P

Pasha

Гость
#4
Для: Smorodin
Access это зло.
Погугли. Потом перепиши запрос с квадратными скобками: "SELECT [pars].[id], [pars].[start], [pars].[end]...".
 
Статус
Закрыто для дальнейших ответов.