SqlConnection cn = zjportCommon.DataAccess.GetConnection();
            cn.Open();
            string str = "select CraneID from CraneWorkInfo_3 where CraneWorkInfo_3.CraneWorkTime is not null and CraneWorkInfo_3.CraneLoadTimes is not null and CraneWorkInfo_3.ApplyID='" + this.ViewState["ApplyID"] + "' and CraneWorkInfo_3.BerthShiftTimes='" + this.ViewState["BerthShiftTimes"] + "' and CraneWorkInfo_3.WorkDate='" + this.ViewState["WorkDate"] + "' and CraneWorkInfo_3.WorkClass='晚班' order by convert(int,CraneID) asc";
            SqlDataAdapter da = new SqlDataAdapter(str, cn);
            DataSet ds = new DataSet();
            da.Fill(ds, "Select");
            DataRowView view = ds.Tables["Select"].DefaultView[0];
            string ClassCraneID;
            foreach (string CraneID in view["CraneID"].ToString())
            {
                ClassCraneID = String.Join(".", CraneID);
            }            SqlCommand cmd = new SqlCommand("update WorkClassInfo_3 set ClassCraneID=@ClassCraneID where WorkClassInfo_3.ApplyID='" + this.ViewState["ApplyID"] + "' and WorkClassInfo_3.BerthShiftTimes='" + this.ViewState["BerthShiftTimes"] + "' and WorkClassInfo_3.WorkDate='" + this.ViewState["WorkDate"] + "' and CraneSectInfo_3.WorkClass='晚班'", cn);
            cmd.Parameters.Add("@ClassCraneID", SqlDbType.NVarChar, 50);
            cmd.Parameters["@ClassCraneID"].Value = ClassCraneID;
            cmd.ExecuteNonQuery();
            cn.Close();我是想把多个CraneID加上~.~存入ClassCraneID 中,格式如下(1.2.3.15.12),上面的JOIN报错,请教如何解决

解决方案 »

  1.   

     ClassCraneID += "." + CraneID;
      

  2.   

    ClassCraneID += "." + CraneID;循环结束后,ClassCraneID =ClassCraneID .Substring(1, ClassCraneID .Length);
      

  3.   

    循环之后没必要再用Substring()截取字符串了。
      

  4.   

    select C1 from Table1 for xml raw
      

  5.   

    得出的结果并没有达到预期想要的,表里有2,3,6,7,8,10号门机,用上面语句插入后,ClassCraneID 字段只存了".2",求教高手啊,急!!!!!!!!!!!!
      

  6.   

    你有没有调试你那个foreach代码???
    确定循环执行了吗?
      

  7.   

     DataSet ds = new DataSet();
      da.Fill(ds, "Select");
      DataTable table = ds.Tables["Select"];
      string ClassCraneID;
      foreach (DataRow row in table.Rows) 
       {
         ClassCraneID+=row["你要获取的字段名"].ToString();
        }
      

  8.   

    ClassCraneID += String.Join(".", +CraneID);
    这样理论上可以实现你要求的.但是看你说的那些,可能foreach里面的代码没有按照你的想法保存值,检查一下你的view["CraneID"],调试一下整个程序吧..
      

  9.   

    感谢,已经解决DataTable tb = ds.Tables["Select"];
                string ClassCraneID = "";
                foreach (DataRow row in tb.Rows)
                {
                    ClassCraneID += row["CraneID"].ToString() + ".";
                }
    只是最后一个门机号后有个~.~
      

  10.   

    最后那个.号用substring()方法去掉就可以了。
      

  11.   

    嗯,感谢你的建议
    foreach (DataRow row in tb.Rows)
                {
                    ClassCraneID += "." + row["CraneID"].ToString();
                }
                ClassCraneID = ClassCraneID.Substring(1, ClassCraneID.Length - 1);
    已经完美解决了