设备内码    名称      说明              值
322          g11    下行增益(G11)       40
322          g01    上行增益(G01)       43
322          p01    上行功率(P01)       19dbm
322          p11    下行功率(P11)       43dbm
对这个表的多项记录查询,查询成功后将查询结果再插入到另外一个表中,我只能查询一个记录,如果同时选择了多行记录,请问我该怎么做?我是用(C#)
本人菜鸟,求救!及时给分,在线等!

解决方案 »

  1.   

    sql statement:
    Insert into Table1 ( Field1, Field2, ..., Fieldn ) 
    Select Field1, Field2, ..., Fieldn From Table2 
    Where ...
      

  2.   

    那你填充到DataTable中,然后进行修改,最后用DataAdapter来更新,参看
    http://blog.csdn.net/knight94/archive/2006/05/01/704316.aspx
      

  3.   

    表是在datagrid里面的,比如我选择了g11和g01这两行的数据,然后点击查询,则所查询的数据被插入到另外一个数据库中,但是我想知道是怎么实现查询这一块的语句,至于插入的语句已经有了,请大家帮忙
      

  4.   

    代码如下:可是我不会,请高手指教
    private void button1_Click(object sender, System.EventArgs e)
    {
    //参数分隔符号
    string strSeperator="";
    string strCurParamValue="";
    string strOldParamValue="";
    string strCurParamId="";
    string strSql="";

    if (this.dg_ParamList.RowsCount<1)
    return;

    strSql="select * from tstnDesc  where stnId="+i_DeviceID;

    DBCls.DBCls.dbOpen();
    DBCls.DBCls.SqlConn(strSql);
    DataSet ds=new DataSet();
    DBCls.DBCls.DataAdapter.Fill(ds,"table");
    string strCorpName=ds.Tables[0].Rows[0]["CorpName"].ToString();string strCmdstr="";string strCorpId=GetCorpId(strCorpName);strCurParamId=this.dg_ParamList[this.dg_ParamList.CurrentRowIndex,1].ToString();


    for (int iRow=0;iRow<this.dg_ParamList.RowsCount;iRow++)
    {
    if(dg_ParamList[iRow,7].ToString() == "1") 
    {
    strCmdstr="ACC=1506";
    strSeperator="&";
    strCmdstr+=strSeperator+strCurParamId;
    }
    }if (strCmdstr!="")
    {
    strSql="insert into tAtCmdStr(StnId,StnNO,StnTelNo,CmdStr,flag,UserName,DoTime) "+
    " select stnid,stnno,stntelno,'"+strCmdstr+"',0,'"+DBCls.DBCls.UserName+"', "+
    " getdate() from tStnDesc where stnId ="+i_DeviceID;
    DBCls.DBCls.dbOpen();
    DBCls.DBCls.SqlConn(strSql);
    if (DBCls.DBCls.myCommand.ExecuteNonQuery()>0)
    {
    MessageBox.Show("查询参数成功","提示信息");
    strCmdstr="";
    }
    }
    }
      

  5.   

    其实这种东西很简单,首先你肯定要去获得选择行的关键字,在你的这个表中,关键字就是设备内码和名称两个字段,然后用循环去获取数据。第一种办法,每次循环组成一个[设备内码=? and 名称=?]的条件,然后在用or来连接每组这种条件。
    strSql = "select * from tstnDesc  where (设备内码=322 and 名称='g11') or (设备内码=322 and 名称='g01')";另一个方法,每次循环组合[,设备内码+名称]到一个字符串,然后把该字符串用in连接到脚本中。
    s_inlist = ", '322_g11', '322_g01'";
    strSql = "select * from tstnDesc  where stnId in (0" + s_inlist + ")";
      

  6.   

    insert into table1
    select .... from table2 where ....
      

  7.   

    声明一下,主键就是名称
    在SQL里叫strCurParamId
      

  8.   

    你可以寫一個存儲過程
    把你選擇的數據id傳過去(用循环定義參數對應選擇的數據id)
    然後在存儲過程中循环insert
      

  9.   

    我是寫vb.net的
    C#語法不知道
    不過思想是一樣的
    就是說
    你選擇了多少條數據
    就在存儲過程中定義多少個參數
    然後根據這些參數循环查詢數據
    查到後就insert