请问各位,从前台用ajax方法传送字符串,接收后利用split分隔出数组,当中有5个值,要怎样放到泛类型中,并且循环插入到数据库中?以下写法报错,请问要怎样写?谢谢!public bool SendPMessage(string SelectValue, string MsgContent)
        {
            bool sendState = false;
            Message message = new Message();
            //根据“,”分隔字符串
            string[] strArray = SelectValue.Split(',');            message.Body = MsgContent; //信息内容
            message.CreateDate = Convert.ToDateTime(DateTime.Now.ToString()); //创建时间            for (var i = 0; i < strArray.Length; i++)
            {
                message.Owner = int.Parse(strArray[i]); //接收者ID
                sendState = Dao.SendMsg(message);
            }
                return sendState;
        }以下是SQL语句
public static bool SendMsg(Message message)
{
     string sql = @"insert into MESSAGE (Id,Body,CreateDate,Owner) values(:Id,:Body,:CreateDate,:Owner)";      using (DataHelper helper = new DataHelper(CommonData.Conn, CommonData.DBType))
            {
                return helper.CreateQuery(sql, CommandType.Text)
                            .SetInt32("Id", Getval())
                            .SetString("Body", message.Body)
                            .SetDateTime("CreateDate", message.CreateDate)
                            .SetInt32("Owner", message.Owner)                     
                            .ExecuteNonQuery() > 0 ? true : false;
            }
}

解决方案 »

  1.   

    泛类型不一定要,你现在用的数组就满足啊,你现在要改的是sql语句,insert into可以一次插入多行数据的,这是我的例子
    myCommand.CommandText = "insert into [tb_cz3] (bianhao,col,leibei,bzr,jiedian) ";
                                    List<string> list = new List<string>();
                                    foreach (RepeaterItem item in Rpt1.Items)
                                    {
                                        DropDownList drpt = item.FindControl("DropDownList6") as DropDownList;
                                        Label lb = item.FindControl("label3") as Label;                                    if (drpt.SelectedItem.ToString() != "请选择")
                                        {                                        list.Add(lb.Text);
                                            list.Add(drpt.SelectedValue.ToString());
                                        }
                                    }
                                    for (int x = 0; x < list.Count; x += 2)
                                    {
                                        myCommand.CommandText += "select " + i + ",'a9'," + list[x] + "," + list[x + 1] + ",'1' UNION ALL ";
                                    }
                                    myCommand.CommandText = myCommand.CommandText.Substring(0, myCommand.CommandText.Length - 10);
                                    myCommand.ExecuteNonQuery();
      

  2.   


    哥们,你的写法不太懂啊!我的for循环里数组有5个值。我这样写是不是可以循环inset into到数据库5次?但老报“非并所有值都已绑定”这样的错!
      

  3.   

    报的是“并非所有值都已绑定”,我的for循环里数组有5个值。我这样写是不是可以循环inset into到数据库5次?谢谢
      

  4.   

    貌似你那个for循环里面有错,咋的只有Id在循环而其他的却单调在外