У нас есть тихая большая база данных SQL Server (около 30 миллионов строк в крупнейших таблицах). Когда я пытаюсь запустить хранимую процедуру, у меня есть странная проблема. Это работает, если я использую этот код:Почему SqlDataReader для DataTable работает только в том случае, если я использую отдельное поле?
cmd = new SqlCommand("query", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "StoredProcedureName";
cmd.Parameters.Add("myParameter", myParameter);
cmd.CommandTimeout = 600;
DataTable table = new DataTable();
var restmp = cmd.ExecuteReader();
table.Load(restmp);
Но он работает вечно, если я использую это один:
cmd = new SqlCommand("query", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "StoredProcedureName";
cmd.Parameters.Add("myParameter", myParameter);
cmd.CommandTimeout = 600;
DataTable table = new DataTable();
table.Load(cmd.ExecuteReader());
Что может привести к этому?
Вы называете это ТОЧНО теми же значениями параметров? –
Да, конечно. Но я попробовал много разных ценностей. (В реале у меня есть несколько параметров). И каждый раз, когда я использую первый метод, он работает, и каждый раз, когда я использую второй, это не так. –
Вы сказали * он работает вечно *, но где он блокируется? –