Я использую Informix db, и я пытаюсь получить данные для определенного элемента и хранить его в datatable.не удалось загрузить odbcdatareader в datatable
Я проверил следующее:
1) строка подключения выглядит хорошо
2) соединение способно открыть
3) Я использовал ту же строку соединения из web.config на набор данных, создающий адаптер таблицы, и он может извлекать запись.
Это код, я использую:
var connectionstring = ConfigurationManager.ConnectionStrings["TestDataTable"].ConnectionString;
OdbcConnection con = new OdbcConnection(connectionstring);
//con.ConnectionString = connectionstring;
if (TxtItem.Text != hold_item)
{
con.Open();
OdbcCommand cmd = new OdbcCommand(@"Select t_item,t_idsc,t_upct,
t_item_upc,t_ctyp,t_citg,
t_best,t_disp,t_mold,t_csel
from informix.tsckcm907
where t_item = " + stitem, con);
OdbcDataReader myReader = cmd.ExecuteReader();
DataTable testdt = new DataTable();
testdt.Load(myReader);
foreach (DataRow row in testdt.Rows)
{
lbldesc.Text = row["t_idsc"].ToString();
Spanish_Item();
{
DropDownList2.SelectedIndex = 1;
object stlanguage = 1;
hold_language = Convert.ToString(stlanguage);
TxtBestBefore.Text = row["t_best"].ToString();
holdbest = Convert.ToInt16(TxtBestBefore.Text);
}
}
myReader.Close();
myReader.Dispose();
cmd.Dispose();
con.Close();
con.Dispose();
}
в режиме отладки моя ошибка происходит на OdbcDataReader линии: сообщение ошибка:
An exception of type 'System.Data.Odbc.OdbcException'
occurred in System.Data.dll but was not handled in user code
Additional information: ERROR [42000] [Informix]
[Informix ODBC Driver][Informix]A syntax error has
occurred.
Каково фактическое значение _stitem_ Вы используете конкатенацию строк, очень плохо на многих уровнях, включая наличие одной кавычки в вашем значении. И если t_item является текстовым полем, вам нужны кавычки вокруг переменной – Steve