C# 使用多行文本框作为查询条件填充DataGridView
这是我在StackOverflow中的第二个问题,这就是我被困的地方 我想循环多行文本框中的每个值,并将其作为查询条件传递,然后用结果(多个结果)填充我的DataGridView 问题是。我不能从文本框传递超过1个值。我可以正确执行查询,但它不会正确循环,因为它只显示数据网格中第一个值的结果,并且我需要文本框中每一行的数据(结果) 我的代码是C# 使用多行文本框作为查询条件填充DataGridView,c#,sql,oracle,loops,datagridview,C#,Sql,Oracle,Loops,Datagridview,这是我在StackOverflow中的第二个问题,这就是我被困的地方 我想循环多行文本框中的每个值,并将其作为查询条件传递,然后用结果(多个结果)填充我的DataGridView 问题是。我不能从文本框传递超过1个值。我可以正确执行查询,但它不会正确循环,因为它只显示数据网格中第一个值的结果,并且我需要文本框中每一行的数据(结果) 我的代码是 for (int i = 0; i < textBox1.Lines.Length; i++) {
for (int i = 0; i < textBox1.Lines.Length; i++)
{
Connect();
OracleCommand cmd = new OracleCommand();
OracleDataAdapter adapter = new OracleDataAdapter();
DataTable dt = new DataTable();
cmd = new OracleCommand(OraSql + OraSql2 + orasql3 + OraSql4, con);
adapter = new OracleDataAdapter(cmd);
cmd.ExecuteNonQuery();
adapter.Fill(dt);
foreach (DataRow row in dt.Rows)
{
dataGridView1.Rows.Add
(
row[0].ToString(),
row[1].ToString(),
row[2].ToString(),
row[3].ToString(),
row[4].ToString(),
row[5].ToString()
);
}
}
for(int i=0;i
我希望我在这里的解释是正确的
谢谢大家!
这是我的问题
string OraSql = @"SELECT r.ixkitl ""Parent Part Number"",
r.ixlitm ""Component Part Number"",
i.imdsc1 ""Description"",
SUM((r.ixqnty/10000)) ""Qty per Harness"",
To_date(r.ixefff+1900000, 'YYYYDDD') ""Effective From Date"",
To_date(r.ixefft+1900000, 'YYYYDDD') ""Effective Thru Date"",
r.ixtbm ""Bill Type"",
r.ixmmcu ""Branch Plt""
FROM proddta.f3002 r,
proddta.f4101 i";
string OraSql2 = @"
WHERE (i.imlitm IN '" + textBoxX1.Text.ToString() + "'AND i.imitm = r.ixkit)";
string orasql3 = @"
AND (r.ixmmcu = ' 3320' AND r.ixtbm = 'M ')";
string OraSql4 = @"
AND r.ixefff <= (to_char(SYSDATE, 'YYYYDDD')-1900000)
AND r.ixefft >= (to_char(SYSDATE, 'YYYYDDD')-1900000)
GROUP BY r.ixkitl,
r.ixlitm,
r.ixqnty,
r.ixtbm,
r.ixmmcu,
r.ixefff,
r.ixefft,
i.imdsc1
ORDER BY r.ixkitl,
r.ixlitm";
string OraSql=@“选择r.ixkitl”“父零件号”,
r、 ixlitm“部件号”,
i、 imdsc1“说明”,
总和((r.ixqnty/10000))“每个线束的数量”,
截止日期(r.ixefff+1900000,'YYYYDDD')“自日期起生效”,
截止日期(r.ixefft+1900000,'YYYYDDD')“生效至日期”,
r、 ixtbm“票据类型”,
r、 ixmmcu“分支Plt”
来自proddta.f3002 r,
proddta.f4101 i”;
字符串OraSql2=@“
其中(i.imlitm位于“+textBoxX1.Text.ToString()+”,i.imitm=r.ixkit)”;
字符串orasql3=@“
和(r.ixmmcu='3320'和r.ixtbm='M')”;
字符串OraSql4=@“
和r.ixefff=(to_char(SYSDATE,'yyyyyddd')-1900000)
由r.ixkitl组成的小组,
r、 伊克斯利特,
r、 ixqnty,
r、 ixtbm,
r、 ixmmcu,
r、 伊克谢夫,
r、 伊克谢夫特,
i、 imdsc1
r.ixkitl的命令,
r、 伊克斯利特”;
您试图执行的sql是什么?对不起。刚刚在POST中添加了查询,建议更改方法。在各行之间循环时,创建一个查询参数列表。然后运行一个查询,其中包括和i.imitm in(参数在此处)
。与您的问题无关,但这似乎是错误的:(to_char(SYSDATE,'yyyyyddd')-1900000)
。to_char返回一个字符串,因此您不应该尝试对其进行数学运算。我使用它将Julian日期转换为Gregorian日期抱歉,如果我不能更具体地说,因为这是一个预制查询,我必须使用您必须使用的预制查询有问题。这,WHERE(i.imlitm在“+textBoxX1.Text.ToString()+”'和i.imitm=r.ixkit)”正在您的循环中运行。
。但是,每次通过循环时,textBoxX1.Text.ToString()
都具有相同的值。