Измените запрос, который заполняет ваш DataTable
, чтобы включить соответствующую логику:
SELECT col1, col2, CAST(CASE YesNoNullCol WHEN 'yes' THEN 1 WHEN 'no' THEN 0 ELSE 0 END AS BIT) FROM SomeTable
РЕДАКТИРОВАТЬ: Забыл, что вы также должны предоставить команды вставки / обновления / удаления в DataAdapter.
Чтобы заставить коммиты работать с использованием вышеуказанного, вам нужно указать пользовательские команды для обновления БД:
SqlCommand insert_cmd = connection.CreateCommand();
insert_cmd.CommandText = "INSERT INTO SomeTable(col1, col2, YesNoNullCol) VALUES (@col1, @col2, CASE @yesnonullcol WHEN 1 THEN 'Yes' WHEN 0 THEN 'No' ELSE 'No' END)";
var yesno_col = insert_cmd.CreateParameter();
yesno_col.Name = "@yesnonullcol";
insert_cmd.Parameters.Add(col1_parm);
myAdapter.InsertCommand = insert_cmd;
И, конечно, вам необходимо указать параметры и для @col1
и @col2
. А затем вам нужно создать команды для обновления и удаления, если вы хотите поддерживать эти операции.