Здравствуйте, Welt, Вы писали:
W>Привет! Есть вот такая проблема,нужно просто посчитать количество записей и записать их в переменную. в последней строчке выдает ошибку "Недопустимая попытка чтения при отсутствии данных." хотя проверяю отдельно запрос он работает W>string SqlID = string.Format(@"SELECT COUNT(Type_Auto_ID) AS Expr1 FROM Type_Auto"); W> SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=""C:\Documents and Settings\Admin\Рабочий стол\Auto Base\Auto_Base.mdf"";Integrated Security=True;Connect Timeout=30;User Instance=True"); W> SqlCommand cnd = new SqlCommand(SqlID, cn); W> cn.Open(); W> SqlDataReader mydatareader; W> mydatareader = cnd.ExecuteReader(CommandBehavior.CloseConnection); W> string sss = mydatareader["Expr1"].ToString().Trim();
Советую использовать для таких целей хранимые продцедуры с возвращаемыми параметрами. Повысиш быстродействие и будет легче отлаживать код.
Создай хранимую продцедуру с параметром Expr1, а потом в режиме отладки проверь значение параметра. Вероятней всего сейчас mydatareader["Expr1"] возвращает null. Еще строка CommandBehavior.CloseConnection возможно проблема в ней т.е запрос выполняется и соединение закрывается, а SqlDataReader обращается к пустому набору данных. Вобщем мой совет — используй хранимые продцедуры.