问题描述
大侠帮忙看看代码由于刚刚学写代码,写的有些乱stringConStr="server=.;database=UWSN;uid=sa;pwd=liuqianqian";SqlConnectioncon=newSqlConnection(ConStr);con.Open();SqlCommandcommand=newSqlCommand("select*fromdbo.Node",con);SqlDataReaderdr1=command.ExecuteReader();stringsqlstr="select*fromdbo.Node";SqlDataAdapterdap=newSqlDataAdapter(sqlstr,con);DataSetds=newDataSet();SqlCommandBuilderbulider=newSqlCommandBuilder(dap);Chart1.Series[0].Points.DataBind(dr1,"CoordinateX","CoordinateY","Label=SensorNumber");dr1.Close();dap.Fill(ds,"dbo.Node");Chart1.Series[0].MarkerSize=18;Chart1.Series[0].MarkerBorderColor=Color.Black;Chart1.Series[0].MarkerBorderWidth=1;Chart1.Series[0].MarkerStyle=MarkerStyle.Circle;SqlDataReaderdr2=command.ExecuteReader();intsensorN=0;while(dr2.Read()){doubleA,n,x,y;x=0;y=0;doubled1,d2,d3;A=40;n=3;d3=15;doubler,b;if(Convert.ToBoolean(dr2["RSSI1"])==true){doubleRSSI1=Convert.ToDouble(dr2["RSSI1"]);doubleRSSI2=Convert.ToDouble(dr2["RSSI2"]);d1=Math.Pow(10,(Math.Abs(RSSI1)-A)/(10*n));d2=Math.Pow(10,(Math.Abs(RSSI2)-A)/(10*n));r=(d1*d1+d3*d3-d2*d2)/(2*d1*d3);b=Math.Sqrt(1-r*r);x=r*d1;y=b*d1;}else{x=0;y=0;}charX=(char)(x);charY=(char)(y);sensorN=int.Parse(dr2["SensorNumber"].ToString());ds.Tables["dbo.Node"].Rows[sensorN]["positionX"]="+X+";ds.Tables["dbo.Node"].Rows[sensorN]["positionY"]="+Y+";}dr2.Close();dap.Update(ds,"dbo.Node");调试显示位置ds.Tables["dbo.Node"].Rows[sensorN]["positionX"]="+X+";处无16行,dbo.Node表中是有16行的。求好心人帮助,最好能远程协助谢谢
解决方案
解决方案二:
16行下标是15,仔细调试
解决方案三:
好像是这个问题,谢谢,但又有新问题了dap.Update(ds,"dbo.Node");不能更新源数据库怎么办啊
解决方案四:
调试显示:对于不返回任何键列信息的SelectCommand,不支持UpdateCommand的动态SQL生成。我用了SqlDataAdapter的啊为什么没有?