C# 如何使用itextsharp循环sql结果以填充pdf
我试图使用iTextSharp从多个SQL查询填充一个。 为了填写表单的第1部分,查询返回1个名称,对于第二部分,我需要循环检查结果,这是我遇到的一点麻烦C# 如何使用itextsharp循环sql结果以填充pdf,c#,sql-server,pdf,itextsharp,C#,Sql Server,Pdf,Itextsharp,我试图使用iTextSharp从多个SQL查询填充一个。 为了填写表单的第1部分,查询返回1个名称,对于第二部分,我需要循环检查结果,这是我遇到的一点麻烦 using (var connection2 = new SqlConnection("Data Source=PUMA; Initial Catalog=CACTUS; User ID=somethinguser; Password=digital; Connection Timeout=50")) {
using (var connection2 = new SqlConnection("Data Source=PUMA; Initial Catalog=CACTUS; User ID=somethinguser; Password=digital; Connection Timeout=50"))
{
using (var command2 = connection2.CreateCommand())
{
command2.CommandText = "SELECT * from MikeACATest WHERE SSN = " + SSN + "and RELATIONCODE <> '01'";
connection2.Open();
using (var reader2 = command2.ExecuteReader())
{
while (reader2.Read())
{
var dNAME = reader2.GetValue(reader2.GetOrdinal("NAME"));
var dDOB = reader2.GetValue(reader2.GetOrdinal("DOB"));
var dP2_16_ALL = reader2.GetValue(reader2.GetOrdinal("P2_16_ALL"));
var dP2_16_1 = reader2.GetValue(reader2.GetOrdinal("P2_16_1"));
var dP2_16_2 = reader2.GetValue(reader2.GetOrdinal("P2_16_2"));
var dP2_16_3 = reader2.GetValue(reader2.GetOrdinal("P2_16_3"));
var dP2_16_4 = reader2.GetValue(reader2.GetOrdinal("P2_16_4"));
var dP2_16_5 = reader2.GetValue(reader2.GetOrdinal("P2_16_5"));
var dP2_16_6 = reader2.GetValue(reader2.GetOrdinal("P2_16_6"));
var dP2_16_7 = reader2.GetValue(reader2.GetOrdinal("P2_16_7"));
var dP2_16_8 = reader2.GetValue(reader2.GetOrdinal("P2_16_8"));
var dP2_16_9 = reader2.GetValue(reader2.GetOrdinal("P2_16_9"));
var dP2_16_10 = reader2.GetValue(reader2.GetOrdinal("P2_16_10"));
var dP2_16_11 = reader2.GetValue(reader2.GetOrdinal("P2_16_11"));
var dP2_16_12 = reader2.GetValue(reader2.GetOrdinal("P2_16_12"));
for (int i = 17; i < Convert.ToInt32(3) + 17; i++)
{ //pdfFormFields declared earlier
pdfFormFields.SetField("Part[3]." + i + "a.CoveredUserName", dNAME.ToString());
pdfFormFields.SetField("Part[3]." + i + "c.CoveredUserDOB", dDOB.ToString());
pdfFormFields.SetField("Part[3]." + i + "d.cb.CoveredMonths[All]", dP2_16_ALL.ToString());
pdfFormFields.SetField("Part[3]." + i + "e.cb.CoveredMonths[Jan]", dP2_16_1.ToString());
pdfFormFields.SetField("Part[3]." + i + "e.cb.CoveredMonths[Feb]", dP2_16_2.ToString());
pdfFormFields.SetField("Part[3]." + i + "e.cb.CoveredMonths[Mar]", dP2_16_3.ToString());
pdfFormFields.SetField("Part[3]." + i + "e.cb.CoveredMonths[Apr]", dP2_16_4.ToString());
pdfFormFields.SetField("Part[3]." + i + "e.cb.CoveredMonths[May]", dP2_16_5.ToString());
pdfFormFields.SetField("Part[3]." + i + "e.cb.CoveredMonths[June]", dP2_16_6.ToString());
pdfFormFields.SetField("Part[3]." + i + "e.cb.CoveredMonths[July]", dP2_16_7.ToString());
pdfFormFields.SetField("Part[3]." + i + "e.cb.CoveredMonths[Aug]", dP2_16_8.ToString());
pdfFormFields.SetField("Part[3]." + i + "e.cb.CoveredMonths[Sept]", dP2_16_9.ToString());
pdfFormFields.SetField("Part[3]." + i + "e.cb.CoveredMonths[Oct]", dP2_16_10.ToString());
pdfFormFields.SetField("Part[3]." + i + "e.cb.CoveredMonths[Nov]", dP2_16_11.ToString());
pdfFormFields.SetField("Part[3]." + i + "e.cb.CoveredMonths[Dec]", dP2_16_12.ToString());
reader2.NextResult();
}
}
}
connection2.Close();
}
}
pdfStamper.FormFlattening = false;
pdfStamper.Close();
}
使用(var connection2=new-SqlConnection(“数据源=PUMA;初始目录=CACTUS;用户ID=somethinguser;密码=digital;连接超时=50”))
{
使用(var command2=connection2.CreateCommand())
{
command2.CommandText=“从MikeActest中选择*,其中SSN=“+SSN+”和关系代码“01”;
连接2.Open();
使用(var reader2=command2.ExecuteReader())
{
while(reader2.Read())
{
var dNAME=reader2.GetValue(reader2.GetOrdinal(“名称”);
var dDOB=reader2.GetValue(reader2.GetOrdinal(“DOB”);
var dP2_16_ALL=reader2.GetValue(reader2.GetOrdinal(“P2_16_ALL”);
var dP2_16_1=reader2.GetValue(reader2.GetOrdinal(“P2_16_1”);
var dP2_16_2=reader2.GetValue(reader2.GetOrdinal(“P2_16_2”);
var dP2_16_3=reader2.GetValue(reader2.GetOrdinal(“P2_16_3”);
var dP2_16_4=reader2.GetValue(reader2.GetOrdinal(“P2_16_4”);
var dP2_16_5=reader2.GetValue(reader2.GetOrdinal(“P2_16_5”);
var dP2_16_6=reader2.GetValue(reader2.GetOrdinal(“P2_16_6”);
var dP2_16_7=reader2.GetValue(reader2.GetOrdinal(“P2_16_7”);
var dP2_16_8=reader2.GetValue(reader2.GetOrdinal(“P2_16_8”);
var dP2_16_9=reader2.GetValue(reader2.GetOrdinal(“P2_16_9”);
var dP2_16_10=reader2.GetValue(reader2.GetOrdinal(“P2_16_10”);
var dP2_16_11=reader2.GetValue(reader2.GetOrdinal(“P2_16_11”);
var dP2_16_12=reader2.GetValue(reader2.GetOrdinal(“P2_16_12”);
对于(inti=17;i
此代码的问题在于命令查询“从MikeActest中选择*,其中SSN=“+SSN+”和RELATIONCODE“01”代码>返回3个名字:黛布拉、帕克和莎拉
我需要做的是计算出现的名称数量,并循环遍历每个名称,填充PDF。我知道如何填充PDF,但我的问题是在查询中循环
在我的for循环中(顺便说一句,它不起作用),我硬编码了数字3,所有3个名字都是妻子的()。让它起作用了
reader2.NextResult()
导致了问题,因为这意味着要同时进行多个搜索查询,如select*fromGroupa;选择…
-您不应该将SQL语句连接在一起-使用参数化查询来避免SQL注入