使用SqlDataAdapter填充数据遇到的问题(另寻找杭州的.net程序员)
我本来是希望将一些满足条件的记录一条一条填充导数据集。结果填充出的数据集比我原来的记录多了好多。请给我看一下程序。
SqlDataAdapter AllDa = new SqlDataAdapter();
SqlCommand outCmd = new SqlCommand();
outCmd.Connection = mbispub.LocalConn;
AllDa.SelectCommand = outCmd;
//获得需要导出记录的数量
li_URCount = UploadDs.Tables["BCInfo"].Rows.Count;
try
{
for (li_UStart = 0; li_UStart < li_URCount; li_UStart ++)
{
li_UDonorId = 0;
ls_UDonationId = "";
li_UDonorId = Convert.ToInt32(UploadDs.Tables["BCInfo"].Rows[li_UStart]["DonorId"]);
ls_UDonationId = UploadDs.Tables["BCInfo"].Rows[li_UStart]["DonationId"].ToString().Trim();
DonorLocalSql = "SELECT DonorID, DonorId_Facility, Name, Sex, Age, Donor_ABO, Rh, RhPhenotype, UnexpectedAntibodies, Convert(varchar(19),BirthDate,120) as BirthDate, Nation, Country, RegisteredResidence, CertificateType, CertificateId, ";
DonorLocalSql += " CitizenId, CompanyName, Mail, PostalCode, EducationLevel, Occupation, MobileTelephone, Email, Telephone, MarriageStatus, Address, DonorType, DeferralReturnFlag, SMSflag, FirstAFlag, ADonorSelectionFlag, ";
DonorLocalSql += " ADonorNotificationFlag, DonationTotalTimes, WDonationTotalTimes, ADonationTotalTimes, DonationTotalVolumes, WDonationTotalVolumes, ADonationTotalVolumes, Convert(varchar(19),FirstDonationDate,120) as FirstDonationDate, Convert(varchar(19),LastDonationDate,120) as LastDonationDate, Convert(varchar(19),LastWDonationDate,120) as LastWDonationDate, Convert(varchar(19),LastADonationDate,120) as LastADonationDate, LastCollectionType, LastCollectionFacility, LastCollectionVolume, ";
DonorLocalSql += " IsEmergencyTeamMember, IsVolunteerTeamMember, QPassword, OtherContactMethod, Memo, Convert(varchar(19),RCreationDate,120) as RCreationDate, Rcreator, RcreationDept, RCreationFacility, RIssueFlag, RUsingFlag, RTransFlag FROM DonorLocal ";
DonorLocalSql += " Where (RTransFlag <> '1') or (RTransFlag is null)";
DonorLocalSql += " AND DonorId = '" + li_UDonorId + "'";
HESql = "SELECT HEID, DonorID, Weight, BloodPressure, PressureUnit, Pulse, Temperature, Skin, LymphNode, Growth, Sclera, Limb, HeartLung, LiverSpleen, MedicalHistory, HEResult, HEUnsuitableReason, Convert(varchar(19),HEDate,120) as HEDate, HEArea, HEDoctor, HEDept, ";
HESql += " HEListingID, Convert(varchar(19),RIssueDate,120) as RIssueDate, RIssuereator, Convert(varchar(19),RCreationDate,120) as RCreationDate, Rcreator, RcreationDept, RCreationFacility, RIssueFlag, RUsingFlag, donationtype, collectiontype, OrganizeType, RTransFlag FROM HealthExamination ";
HESql += " Where (RTransFlag <> '1') or (RTransFlag is null)";
HESql += " AND HEId = '" + ls_UDonationId + "'";
BSSql = "SELECT SampleID, DonorID, SampleAppearance, PlateNumber, HoleNumber, IsAtPlate, SampleType, Sample_ABO, Rh, LastABO, LastRh, TestingType, FirstTestingResult, RetestingResult, FinalTestingResult, PositiveItem, FirstTestingIndeterminateFlag, ";
BSSql += " RetestingIndeterminateFlag, CollectionType, SampleReceiptFlag, Convert(varchar(19),SamplingDate,120) as SamplingDate, SamplingArea, Sampler, SamplingDept, Samplecollectioninstitution, SampleListingID, Convert(varchar(19),RCreationDate,120) as RCreationDate, Rcreator, RcreationDept, RCreationFacility, RUsingFlag, RTransFlag FROM BloodSample ";
BSSql += " Where (RTransFlag <> '1') or (RTransFlag is null)";
BSSql += " AND SampleId = '" + ls_UDonationId + "'";
DSSql = "SELECT ScreeningID, SampleID, Screening_ABO, Screening_RH, HbValue, Hct_A, Plt_A, WBC_A, GR_A, ScreeningHb_WB, Screening_HBsAg, ScreeningHCV_A, ScreeningHIV_A, ScreeningSyphilis_A, ScreeningALT_A, Icterus_A, FattyBlood_A, Hemolysis_A, CollectionType, EstimateAProd, AScreeningType, ScreeningResult, ScreeningAuditor, ";
DSSql += " Convert(varchar(19),ScreeningAuditDate,120) as ScreeningAuditDate, Convert(varchar(19),ScreeningDate,120) as ScreeningDate, ScreeningArea, ScreeningOperator, ScreeningDept, ScreeningListingID, Convert(varchar(19),RIssueDate,120) as RIssueDate, RIssuereator, Convert(varchar(19),RCreationDate,120) as RCreationDate, Rcreator, RcreationDept, RCreationFacility, DSQA, RIssueFlag, RUsingFlag, RTransFlag FROM DonorScreening ";
DSSql += " Where (RTransFlag <> '1') or (RTransFlag is null)";
DSSql += " AND SampleId = '" + ls_UDonationId + "'";
BCSql = "SELECT DonationId, DonorID, Donation_ABO, CollectionVolume, DonationType, CollectionType, OrganizeType, OrganizeInstitution, DonorReactions, DRTreating, DRTreatingDoctor, BCElapsed, BCPause, BCEquipmentID, FlowVelocity, Vehicle, Convert(varchar(19),BCDate,120) as BCDate, BCArea, BCBranchFacility, BCOperator, SealOperator, BCDept, BCListingID, ProdDiscardFlag, Convert(varchar(19),RIssueDate,120) as RIssueDate, ";
BCSql += "RIssuereator, Convert(varchar(19),RCreationDate,120) as RCreationDate, Rcreator, RcreationDept, RCreationFacility, RType, bh, Iseligible, RIssueFlag, RUsingFlag, RTransFlag FROM BloodCollection ";
BCSql += " Where (RTransFlag <> '1') or (RTransFlag is null)";
BCSql += " AND DonationId = '" + ls_UDonationId + "'";
AllDa.SelectCommand.CommandText = DonorLocalSql;
AllDa.Fill(aUDiskDs, "DonorLocal");
AllDa.SelectCommand.CommandText = HESql;
AllDa.Fill(aUDiskDs, "HealthExamination");
AllDa.SelectCommand.CommandText = BSSql;
AllDa.Fill(aUDiskDs, "BloodSample");
AllDa.SelectCommand.CommandText = DSSql;
AllDa.Fill(aUDiskDs, "DonorScreening");
AllDa.SelectCommand.CommandText = BCSql;
AllDa.Fill(aUDiskDs, "BloodCollection");
}
}
catch (Exception FillEx)
{
MessageBox.Show("将本机数据填充到数据集导出时出错,请重试!" + FillEx.Message, "错误提示:");
}
finally
{
mbispub.LocalConnClose();
}
问题点数:100、回复次数:7Top
1 楼sunruping(孙茹苹)回复于 2005-08-03 13:04:29 得分 10
一个字:乱 所以没法帮你 谁能看懂啊????Top
2 楼jialiang(≈≈逆水行舟≈≈)回复于 2005-08-03 14:59:33 得分 20
确实乱,
按你前面说的意思,应该是你的sql语句的条件的问题,自己检查一下吧
还有提醒一下,你贴了这么多代码,应该都与业务有关,别人怎么知道你的业务是怎么设计的呢,所以不可能看懂你的代码的,这样贴了代码还不如不贴
Top
3 楼cxw521816(黑旋风)回复于 2005-08-04 00:05:36 得分 0
兼职可以不可以?Top
4 楼xiaomaolover(小M)回复于 2005-08-04 12:58:02 得分 40
太乱..
sqladapter 执行.
select * from t0;select * from t1
fill(dataset)
dataset.table[0]对应select * from t0
dataset.table[1]对应select * from t1
不知道这样对你有帮助没..
Top
5 楼jtl510(九头狼)回复于 2005-08-04 13:33:17 得分 10
大哥,你写的也太乱了吧Top
6 楼yiyi0518(世上的盐和光)回复于 2005-08-04 13:43:39 得分 20
给个建议,你在写代码的时候一行写不下的时候换行,用个“+”就行了, 可以让你的眼睛舒服很多, 以后维护你自己的代码也比较轻松哦Top
7 楼wuyouyi()回复于 2005-08-04 13:54:26 得分 0
其实把它粘到记事本就不乱了。字符长CSDN都自动换行了Top




