Прежде чем кто замечает, что это есть ответ на другой вопрос, я знаю that..but, несмотря на ответы, которые я рассмотрели наКак передать нулевое значение в качестве параметра для SqlCommand
- Assign null to a SqlParameter
- Sending null parameters to Sql Server
- Best method of assigning NULL value to SqlParameter
и даже мой собственный вопрос в
Я не могу получить мой запрос, возвращающий значения с нулевыми параметрами
Я пытался упростить мой код, чтобы его можно увидеть здесь.
Я также попытался это с
int? i = null;
SqlConnection connection = new SqlConnection(Properties.Settings.Default.connstring.ToString());
SqlCommand cmd = new SqlCommand();
cmd.Connection = connection;
cmd.CommandText = "Select * from view_nests where parent_pk = @parent_pk";
cmd.Parameters.AddWithValue("@parent_pk", i ?? Convert.DBNull);
cmd.Connection.Open();
var dataReader = cmd.ExecuteReader();
var dataTable = new DataTable();
dataTable.Load(dataReader);
cmd.Connection.Close();
Я попытался вариации на это, где я только что сделал
cmd.Parameters.AddWithValue("@parent_pk", DBNull.Value);
И я попытался с помощью запроса
cmd.CommandText = "Select * from view_nests where parent_pk = @parent_pk or @parent_pk Is Null";
Я пытался явно объявляя параметр как обнуляемый
Что по какой-то причине я думал, что у меня есть работа, поэтому я решил принять ответ, но я ошибся, что возвращает все ко мне, независимо от того, какая ценность.
Я знаю, что объект команды соединяет и возвращает данные, потому что, если я помещаю в допустимое значение (скажем, 27), он возвращает запись ... Я также знаю, что есть записи с нулевым значением ... но нет вопрос, как я пытаюсь настроить его, я все равно ничего не получаю, когда пытаюсь передать значение null в качестве параметра.
Любой, кто может помочь мне выяснить, что я делаю неправильно здесь, я был бы признателен.
при использовании SQL Profiler, чтобы посмотреть на то, что на самом деле отправляется в SQL Server, какие значение передается вместо Null? – PhillipH
Есть ли причина, по которой вы не переходите к хранимой процедуре, но пишите простые запросы внутри Visual Studio? Я также проголосую за идею @ PhillipH по SQL Profiler. – techspider
Если я правильно понял, вам нужно: «parent_pk = @parent_pk или (@parent_pk IS NULL AND parent_pk IS NULL)» – Evk