仅添加非空文本框中的数据

时间:2016-08-18 07:39:20

标签: c# ms-access

我正在创建一个库存系统,用户可以为每列Products, Itemcode, Quantity.添加多个10 textbox。用户可以输入10个项目然后一起保存。但我的问题是,当你将另一个文本框留空时,它还会添加该文本框的空值。我的问题是如何过滤非空的文本框,以便只保存在我的数据库中。这就是我现在得到的:

var rows = new[]
    {
    new {Item = txtItem.Text, Product = txtProduct.Text, Quantity = txtQuantity.Text},
    new {Item = txtItem2.Text, Product = txtProduct2.Text, Quantity = txtQuantity2.Text},
    new {Item = txtItem3.Text, Product = txtProduct3.Text, Quantity = txtQuantity3.Text},
    new {Item = txtItem4.Text, Product = txtProduct4.Text, Quantity = txtQuantity4.Text},
    new {Item = txtItem5.Text, Product = txtProduct5.Text, Quantity = txtQuantity5.Text},
    new {Item = txtItem6.Text, Product = txtProduct6.Text, Quantity = txtQuantity6.Text},
    new {Item = txtItem7.Text, Product = txtProduct7.Text, Quantity = txtQuantity7.Text},
    new {Item = txtItem8.Text, Product = txtProduct8.Text, Quantity = txtQuantity8.Text},
    new {Item = txtItem9.Text, Product = txtProduct9.Text, Quantity = txtQuantity9.Text},
    new {Item = txtItem10.Text, Product = txtProduct10.Text, Quantity = txtQuantity10.Text}
    };
    foreach (var row in rows)
                {
    OleDbCommand cmdInsert = new OleDbCommand(
         @"insert into TblInventory (ItemCode,ProductName,Quantity,DateAndTime) values (@ItemCode,@ProductName,@Quantity,@DateAndTime)");
         cmdInsert.Parameters.AddWithValue("ItemCode", row.Item);
         cmdInsert.Parameters.AddWithValue("ProductName", row.Product);
         cmdInsert.Parameters.AddWithValue("Quantity", row.Quantity.ToString());

         cmdInsert.Connection = con;
         cmdInsert.ExecuteNonQuery();

我是编程的新手,所以请善待。谢谢你们。

修改

我尝试在foreach statement之后使用while语句,但似乎它仍无法正常工作

while(row.Item != null && row.Product != null && row.Quantity != null)

ANSWER

我将上面的代码替换为此代码并正常工作

if (!String.IsNullOrEmpty(row.Item) && !String.IsNullOrEmpty(row.Product) && !String.IsNullOrEmpty(row.Quantity))

1 个答案:

答案 0 :(得分:1)


在将数据插入db之前,你应该检查数据是否为空:
在你的foreach循环中输入一个if子句,看起来像这样

if (!String.IsNullOrEmpty(row.Item.Trim() &&     
 !String.IsNullOrEmpty(row.Product.Trim()) &&
 !String.IsNullOrEmpty(row.Quantity.ToString().Trim())) 
{ 
   // insert into db
}


这样就可以从插入中排除空值。