[英]How to add empty value from gridview cell to list?
我想在list<string>
輸入客人詳細信息(Title,Firstname,midname lastname),客人詳細信息可以為空。我正在使用 LINQ 插入列表。我已經將這個問題提到了 LINQ 代碼DataGridView 寫從一列到列表的所有值
我想要做的就是將文本輸入到列表中,如果它有或插入空字符串,如果它沒有。現在如果我將文本框留空,它將拋出object reference not set to instance of an object exception
private string SaveGuestDetails()
{
string strRet = string.Empty;
Reservation obj = new Reservation();
FinalReservationDetails f = new FinalReservationDetails();
try
{
//int i = dgvTextBoxes.Rows.Count;
List<DataRow> personsList = new List<DataRow>();
int j = 0;
for (int i = 0; i < dgvTextBoxes.Rows.Count; i++)
{
f.SubSrNo = j + 1;
f.GuestTitle = dgvTextBoxes.Rows
.OfType<DataGridViewRow>()
.Select(r => r.Cells["txtTitle"].Value.ToString())
.ToList();
f.FirstName = dgvTextBoxes.Rows
.OfType<DataGridViewRow>()
.Select(r => r.Cells["txtFname"].Value.ToString())
.ToList();
f.MidName = dgvTextBoxes.Rows
.OfType<DataGridViewRow>()
.Select(r => r.Cells["txtMName"].Value.ToString())
.ToList();
f.LastName = dgvTextBoxes.Rows
.OfType<DataGridViewRow>()
.Select(r => r.Cells["txtLname"].Value.ToString())
.ToList();
}
}
catch (Exception ex)
{
}
return strRet;
}
您的問題是您的單元格值可以是字符串、DBNull.Value 或 null。 null.ToString()
拋出object reference not set to instance of an object exception
的object reference not set to instance of an object exception
。 為避免這種情況,您可以先將對象設置as string
以擺脫 DBNull.Value,然后使用空合並運算符將空設置為空字符串。
object unknown = System.DBNull.Value;
string converted1 = (unknown as string) ?? string.Empty;
// returns string.Empty
unknown = null;
string converted2 = (unknown as string) ?? string.Empty;
// returns string.Empty
unknown = "text";
string converted3 = (unknown as string) ?? string.Empty;
// returns text
在你的情況下:
f.GuestTitle = dgvTextBoxes.Rows.OfType<DataGridViewRow>().Select
(r => (r.Cells["txtTitle"].Value as string) ?? string.Empty ).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.