c# - 使用 For 循环在单个查询中插入多个文本框和标签值
问题描述
for (int i = 1; i <= daysCount; i++)
{
conn.Open();
string sQuery = "INSERT INTO TripSheet VALUES('" + lblDate1.Text + "','" + txtFuel1.Text+ "','" + txtRate1.Text + "')";
SqlCommand cmd = new SqlCommand(sQuery, conn);
cmd.ExecuteNonQuery();
conn.Close();
}
在这里我需要一个月count
,我必须使用循环插入数据的月份。
lblDate1.Text, txtFuel1.Text & txtRate.Text
这个值我想通过 Like
lblDate[i].Text, txtFuel[i].Text & txtRate[i].Text (Is it possible?)
解决方案
通常,我希望这些值位于某种对象集合中,这些对象已从用户界面中清除。例如作为给定类型的列表或数组。我通常还会看到按该数据的类型插入 SQL 数据,例如datetime
日期、VARCHAR(30)
名称等。现在鉴于我对此一无所知,我可能AddWithValue
在这里使用不太需要的东西。我输入的速度非常快,所以可能是错误的。把它放在一组适当的类和文件中。
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Data.SqlClient;
namespace Rates
{
public class FuelRateThing
{
public DateTime RateDate
{
get;
set;
}
public decimal FuelRate
{
get;
set;
}
public string FuelName
{
get;
set;
}
public FuelRateThing()
{
}
public FuelRateThing(DateTime date, decimal rate, string name)
{
RateDate = date;
FuelRate = rate;
FuelName = name;
}
}
public class Ratethings
{
public void dostuff()
{
CultureInfo provider = CultureInfo.InvariantCulture;
//Create a class to manage these objects perhaps, here is a simple list example.
// populate your list - normally parse and validation of UI values:
List<FuelRateThing> monthRatesList = new List<FuelRateThing>()
{new FuelRateThing{RateDate = DateTime.ParseExact("20180101", "yyyyMMdd", provider), FuelRate = 3.45m, FuelName = "kerosene"}, new FuelRateThing{RateDate = DateTime.ParseExact("20180102", "yyyyMMdd", provider), FuelRate = 3.49m, FuelName = "kerosene"}, new FuelRateThing{RateDate = DateTime.ParseExact("20180103", "yyyyMMdd", provider), FuelRate = 3.48m, FuelName = "kerosene"}, new FuelRateThing{RateDate = DateTime.ParseExact("20180104", "yyyyMMdd", provider), FuelRate = 3.65m, FuelName = "kerosene"}, new FuelRateThing{RateDate = DateTime.ParseExact("20180105", "yyyyMMdd", provider), FuelRate = 3.60m, FuelName = "kerosene"}, };
// add a couple more rows
monthRatesList.Add(new FuelRateThing(DateTime.ParseExact("20180106", "yyyyMMdd", provider), 3.64m, "kerosene"));
var newrate = new FuelRateThing{RateDate = DateTime.ParseExact("20180107", "yyyyMMdd", provider), FuelRate = 3.47m, FuelName = "kerosene"};
monthRatesList.Add(newrate);
}
//Now use the data access code to insert those: (probably in a method that accepts a list of `FuelRateThings`:
public class DataStore
{
public void SaveRateThings(List<FuelRateThing> rateList)
{
var _connectionSB = new SqlConnectionStringBuilder();
// do connections string stuff here
var _connectionString = _connectionSB.ToString();
using (SqlConnection connection = new SqlConnection(_connectionString))
{
String query = @"
INSERT INTO TripSheet (DateColumnName,FuelColumnName,RateColumnName)
VALUES (@DateColumnName,@FuelColumnName,@RateColumnName)";
using (SqlCommand command = new SqlCommand(query, connection))
{
connection.Open();
foreach (FuelRateThing rate in rateList)
{
command.Parameters.AddWithValue("@DateColumnName", rate.RateDate);
command.Parameters.AddWithValue("@FuelColumnName", rate.FuelName);
command.Parameters.AddWithValue("@RateColumnName", rate.FuelRate);
int result = command.ExecuteNonQuery();
}
}
}
}
}
}
}
推荐阅读
- python - 为图像添加透明填充
- azure - Azure 数据工厂如果条件未按预期工作
- javascript - 如何等待函数在javascript中完成?
- plasticscm - 在 Plastic SCM 中,是否有合并 Oracle Forms 二进制文件的选项或工具?
- swift - MapKit 聚类在开始时没有正确聚类,它在平移后聚类
- azure - 如何升级 Helm Chart
- flutter - 有没有一种方便的方法可以在小部件构造函数中将公共字段转换为私有字段?[安卓工作室]
- php - PHP脚本不断将相同的字符串写入文件
- antlr - ANTLR4 语法数学运算符关联性和运算顺序
- python - PolynomialFeatures 的迭代问题