如下,想把下面的代码转成存储过程,恳请指点,谢谢。 
                string sql = "";
 
                DataTable dt = Conn.BindTable("SELECT  distinct  cellname  FROM  " + strTable1 + "    WHERE  normdatetime >= dateadd(hh,-10,getdate())  and normdatetime <= GetDate()");    
                if (dt.Rows.Count != 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                       string  strcellname = dt.Rows[i]["cellname"].ToString().Replace("'", "''").Trim();
                       DataTable dt2 = Conn.BindTable("SELECT   *  FROM  " + strTable2 + "  WHERE          cellname='" + strcellname + "' ");    
                        if (dt2.Rows.Count == 0)
                        {
                            Conn.ExecuteSql("insert into " + strTable2 + "(CellName,CellNameCN,SiteNo,SiteName,sitetype,LAC,CI,BSC,Status,siteclass)  select EngName,ChineseName,workFreq,SiteName,sitetype,LAC,CI,BSC,Areaname,siteclass   from  " + strTable3 + "  WHERE   EngName='" + strcellname + "'  and state=1");   
                        }
                    
                        DataTable dt3 = Conn.BindTable("SELECT   *  FROM  NormInfoTb  WHERE  IsAuto=1  and NormType =" + n + " and AnalyNorm= 1  and state=1");      
                        if (dt3.Rows.Count != 0)
                        {
                            for (int j = 0; j < dt3.Rows.Count; j++)
                            {
                                strContent = dt3.Rows[j]["NormContent"].ToString().Replace("'", "''").Trim();       
                                string strTargetDefault = dt3.Rows[j]["TargetDefault"].ToString().Replace("'", "''").Trim();   
                                 
                                DataTable dtZd = Conn.BindTable("select 1 from sysobjects a inner join syscolumns b on a.id=b.id  where a.id= object_id('" + strTable1 + "') and b.name='" + strContent + "'");
                                if (dtZd.Rows.Count != 0)
                                {
                                    strsqlavg = "SELECT  avg(" + strContent + ") AS AvgNum    FROM  " + strTable1 + "  WHERE  normdatetime >= dateadd(hh,-10,getdate())  and normdatetime <= GetDate()  and   cellname='" + strcellname + "' ";
                                    DataTable dt4 = Conn.BindTable(strsqlavg);    
                                    string strnum = dt4.Rows[0][0].ToString().Replace("'", "''").Trim();      
                                    if (strnum != "")
                                    {
                                        strnum = float.Parse(strnum).ToString("f2");
                                        if (strTargetDefault == "True")
                                        {
                                            sql = "update  " + strTable2 + "  set  " + strContent + "_Max=" + strnum + "   WHERE  cellname='" + strcellname + "'";       
                                            Conn.ExecuteSql(sql);
                                        }
                                        else
                                        {
                                            sql = "update  " + strTable2 + "  set  " + strContent + "_Min=" + strnum + "   WHERE  cellname='" + strcellname + "'";       
                                            Conn.ExecuteSql(sql);
                                        }
                                    }
                                }
                            }
                        }
                  
                }
            }
           

解决方案 »

  1.   

    你能大概说下吧,你让人直接看代码头大不?
    况且这里是sql版,你把C#代码贴出来,不能保证每个人都能看得懂!!!
      

  2.   


    呵呵,不好意思,就是有4个变量,分别是string strTable1, string strTable2, string strTable3, int n然后先从strTable1表中找出不重复的cellname。
    如果存在这样的记录
    下一步       把cellname找出来给strcellname赋值
           然后从strTable2表中找出符合cellname='" + strcellname + "'条件的记录
           如果没有记录
           那么把从strTable3查出的结果全部插入到strTable2中
           然后再从NormInfoTb中找出符合条件的记录
           如果有记录
           for循环