我有一个带有一列的datagridview,我希望连接datagridview行值和
将它们插入一个可数据单元格中。这是我试过的代码
private string concatArticle()
{
string libArt = null;
foreach(DataGridViewRow row1 in ListeArt.Rows)
{
if (row1 != null)
{
libArt = string.Join(",", row1.Cells.Cast<DataGridViewCell>().Select(c => c.Value.ToString()).ToArray());
}
}
return libArt;
}
这是插入值的代码:
SqlCommand CmdService = new SqlCommand("INSERT INTO BonCommande (NumeroBon, LibArticle, Quantite, DateBon)" +
"VALUES (@NumeroBon, @LibArticle, @Quantite, @DateBon)", con4);
CmdService.Parameters.AddWithValue("@NumeroBon", numeroBonTextBox.Text);
CmdService.Parameters.AddWithValue("@LibArticle", concatArticle());
CmdService.Parameters.AddWithValue("@Quantite", Convert.ToInt32(quantiteTextBox.Text));
CmdService.Parameters.AddWithValue("@DateBon", Convert.ToDateTime(dateBonDateTimePicker.Text));
CmdService.ExecuteNonQuery();
但是当我执行此代码时,我收到此错误消息
NullReferenceException:未将对象引用设置为对象的实例。
错误在哪里?
提前致谢。
答案 0 :(得分:1)
单元格中的值为null
首先进行空检查:
string.Join(",", row1.Cells.Cast<DataGridViewCell>().Where( c => c.Value != null ).Select( c => c.Value.ToString()).ToArray());
答案 1 :(得分:1)
试试这个:
libArt += string.Join(",", row1.Cells.Cast<DataGridViewCell>().Where(c => c.Value != null).Select(c => c.Value.ToString()).ToArray());
答案 2 :(得分:0)
试试这个 -
private string concatArticle()
{
string libArt = string.Join(", ", ListeArt.Rows.OfType<DataGridViewRow>()
.Select(i => i.Cells["yourColumnName"].Value.ToString()).ToArray());
return libArt;
}