如果为null,如何在gridview中保存组合框中的空值? [英] How I save null value from combobox in gridview if is null?
问题描述
这是我的代码: -
public FRM_MOVES_TRANSFAR()
{
InitializeComponent();
FillComboboxCarPlace();
}
void FillComboboxCarPlace()
{
试试
{
dSet = new DataSet();
s = 选择Place_id,Place_desc from Place;
sCommand = new SqlCommand(s,con);
sdAdapter = new SqlDataAdapter();
sdAdapter.SelectCommand = sCommand;
sdAdapter.Fill(dSet);
DataRow dr = dSet.Tables [0] .NewRow();
dr.ItemArray = new object [2] {0,--- Select ---};
dSet.Tables [0] .Rows.InsertAt(dr,0);
foreach(DataGridView中的DataGridViewRow行。行)
{
int index = 5;
var cbxMove = row.Cells [index] as DataGridViewComboBoxCell;
cbxMove.ValueMember =Place_id;
cbxMove.DisplayMember =Place_desc;
cbxMove.DataSource = dSet.Tables [0];
}
}
catch
{
return; < br $>
}
}
private void btn_save_Click(object sender,EventArgs e)
{
foreach(dataGridView1.Rows中的DataGridViewRow项目)
{
s =插入Move_Transfer(Car_id,忙,损坏,没有驱动, Place_id,fromDate,user_name_save,Save_Date);
s = s +values(@ Car_id,@ busy,@ da mage,@ withoutDriver,@ Place_id,@ fromDate,@ user_name_save,CURRENT_TIMESTAMP);
sCommand = new SqlCommand(s,con);
sCommand.Parameters.AddWithValue( @Car_id,item.Cells [1] .Value.ToString());
sCommand.Parameters.AddWithValue(@ busy,item.Cells [2] .Value == null? string.Empty:item.Cells [2] .Value.ToString());
sCommand.Parameters.AddWithValue(@ damage,item.Cells [3] .Value == null?string.Empty:item.Cells [3] .Value.ToString()); < br $>
sCommand.Parameters.AddWithValue(@ withoutDriver,item.Cells [4] .Value == null?string.Empty:item.Cells [4] .Value.ToString());
sCommand.Parameters.AddWithValue(@ Place_id,item.Cells [5] .Value ==NULL?string.Empty:item.Cells [5] .Value);
sCommand.Parameters.AddWithValue(@ fromDate,dateTimePicker_form.Text);
sCommand.Parameters.AddWithValue(@ user_name_save,userName);
sCommand .ExecuteNonQuery();
}
}
我尝试过:
我的问题是当我没有在组合框中选择任何值时他给了我错误他不能保存空值: -
s命令。 Parameters.AddWithValue(@ Place_id,item.Cells [5] .Value == null? string.Empty:item.Cells [5] .Value);
this is my code:-
public FRM_MOVES_TRANSFAR()
{
InitializeComponent();
FillComboboxCarPlace();
}
void FillComboboxCarPlace()
{
try
{
dSet = new DataSet();
s = "select Place_id , Place_desc from Place";
sCommand = new SqlCommand(s, con);
sdAdapter = new SqlDataAdapter();
sdAdapter.SelectCommand = sCommand;
sdAdapter.Fill(dSet);
DataRow dr = dSet.Tables[0].NewRow();
dr.ItemArray = new object[2] { 0, " ---Select--- " };
dSet.Tables[0].Rows.InsertAt(dr, 0);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
int index = 5;
var cbxMove = row.Cells[index] as DataGridViewComboBoxCell;
cbxMove.ValueMember = "Place_id";
cbxMove.DisplayMember = "Place_desc";
cbxMove.DataSource = dSet.Tables[0];
}
}
catch
{
return;
}
}
private void btn_save_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow item in dataGridView1.Rows)
{
s = "insert into Move_Transfer (Car_id,busy,damage,withoutDriver,Place_id,fromDate, user_name_save, Save_Date) ";
s = s + " values (@Car_id,@busy,@damage,@withoutDriver,@Place_id,@fromDate ,@user_name_save, CURRENT_TIMESTAMP) ";
sCommand = new SqlCommand(s, con);
sCommand.Parameters.AddWithValue("@Car_id", item.Cells[1].Value.ToString());
sCommand.Parameters.AddWithValue("@busy", item.Cells[2].Value == null ? string.Empty : item.Cells[2].Value.ToString());
sCommand.Parameters.AddWithValue("@damage", item.Cells[3].Value == null ? string.Empty : item.Cells[3].Value.ToString());
sCommand.Parameters.AddWithValue("@withoutDriver", item.Cells[4].Value == null ? string.Empty : item.Cells[4].Value.ToString());
sCommand.Parameters.AddWithValue("@Place_id", item.Cells[5].Value == "NULL" ? string.Empty : item.Cells[5].Value);
sCommand.Parameters.AddWithValue("@fromDate", dateTimePicker_form.Text);
sCommand.Parameters.AddWithValue("@user_name_save", userName);
sCommand.ExecuteNonQuery();
}
}
What I have tried:
my problem when i don't select any value in combobox he gave me error he cant save null value :-
sCommand.Parameters.AddWithValue("@Place_id", item.Cells[5].Value == null ? string.Empty : item.Cells[5].Value);
推荐答案
也许替换
Maybe replace
string.Empty
with
with
DBNull.Value
相应的列必须是可空的。
The corresponding column will have to be nullable, though.
这篇关于如果为null,如何在gridview中保存组合框中的空值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!