none
sql的应用问题 RRS feed

  • 问题

  •         public bool myExceSql(string sqltext,params SqlParameter[] sqlpara)
    
    
    
            {
    
    
    
                var con = ExceCon();
    
    
    
                SqlCommand Com = new SqlCommand(sqltext, con);
    
    
    
    
    
    
    
                //Com.Parameters.Add (sqlpara);//这一句该怎样添加?
    
    
    
    
    
    
    
                try
    
    
    
                {
    
    
    
                    Com.ExecuteNonQuery();
    
    
    
                    return true;
    
    
    
                }
    
    
    
                catch
    
    
    
                {
    
    
    
                    return false;
    
    
    
                }
    
    
    
                finally
    
    
    
                {
    
    
    
                    con.Close();
    
    
    
                }
    
    
    
            }
    
    
    
    
    
    
    
    //调用时采用以下方法,不知道对不对?
    
    
    
    
    
    
    
    
    
    
    
            private void InsertSql()
    
    
    
            {
    
    
    
                string sql = "insert Guarantee(ProductionName,ProductionModel) values(@p0,@p1)";
    
    
    
                
    
    
    
                SqlParameter [] sqlp = new SqlParameter [2];
    
    
    
                sqlp[0] = new SqlParameter("p0", Production_DropDownList.SelectedItem.Text.Trim());
    
    
    
                sqlp[1] = new SqlParameter("p1", ProductionName_DropDownList.SelectedItem.Text.Trim());
    
    
    
                //以上三句对吗?
    
    
    
    
    
    
    
                myExceSql(sql, sqlp)
    
    
    
            }
    
    
    
    
    2009年8月21日 6:29

答案

  • public bool myExceSql(string sqltext,params SqlParameter[] sqlpara)
            {
                var con = ExceCon();
                SqlCommand Com = new SqlCommand(sqltext, con);
    
                Com.Parameters.AddRange (sqlpara);//这一句该怎样添加?
    
                try
                {
                    Com.ExecuteNonQuery();
                    return true;
                }
                catch
                {
                    return false;
                }
                finally
                {
                    con.Close();
                }
            }
     
    
    
            private void InsertSql()
            {
                string sql = "insert Guarantee(ProductionName,ProductionModel) values(@p0,@p1)";
                
                SqlParameter [] sqlp = new SqlParameter [2];
                sqlp[0] = new SqlParameter("@p0", ProductionName_DropDownList.SelectedItem.Text.Trim());
                sqlp[1] = new SqlParameter("@p1", ProductionName_DropDownList.SelectedItem.Text.Trim());
    
    
                myExceSql(sql, sqlp)
            }
    

    http://feiyun0112.cnblogs.com/
    2009年8月21日 6:41
    版主
  • 您好,
    1、 //Com.Parameters.Add (sqlpara);//这一句该怎样添加?
    用for循环sqlpara来添加例如:
    if (sqlpara != null)
                {
                    foreach (SqlParameter parameter in sqlpara)
                    {
                        Com.Parameters.Add(parameter);
                    }
                }

    2、InsertSql方法中sql语句有问题,insert into ....  ;另@p1与@p1之间是逗号分开

    添加参数具体参考:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx
    • 已标记为答案 lfj0912 2009年8月21日 7:12
    2009年8月21日 6:49

全部回复

  • public bool myExceSql(string sqltext,params SqlParameter[] sqlpara)
            {
                var con = ExceCon();
                SqlCommand Com = new SqlCommand(sqltext, con);
    
                Com.Parameters.AddRange (sqlpara);//这一句该怎样添加?
    
                try
                {
                    Com.ExecuteNonQuery();
                    return true;
                }
                catch
                {
                    return false;
                }
                finally
                {
                    con.Close();
                }
            }
     
    
    
            private void InsertSql()
            {
                string sql = "insert Guarantee(ProductionName,ProductionModel) values(@p0,@p1)";
                
                SqlParameter [] sqlp = new SqlParameter [2];
                sqlp[0] = new SqlParameter("@p0", ProductionName_DropDownList.SelectedItem.Text.Trim());
                sqlp[1] = new SqlParameter("@p1", ProductionName_DropDownList.SelectedItem.Text.Trim());
    
    
                myExceSql(sql, sqlp)
            }
    

    http://feiyun0112.cnblogs.com/
    2009年8月21日 6:41
    版主
  •  string sql = "insert  into Guarantee(ProductionName,ProductionModel) values(@p0,@p1)";
               
                SqlParameter [] sqlp = new SqlParameter [2];
                sqlp[0] = new SqlParameter("@p0", ProductionName_DropDownList.SelectedItem.Text.Trim());
                sqlp[1] = new SqlParameter("@p1", ProductionName_DropDownList.SelectedItem.Text.Trim());
                //以上三句对吗?
                bool isSucceed=myExceSql(sql, sqlp);

    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月21日 6:41
    版主
  • 47、     foreach(SqlParameter sqlpara in sqlparas)
    48、     {
    49、                sqlCmd.Parameters.Add(sqlPara);
    50、     }

    这样就可以了,你把变量名修改一下就可以用了。
    jon.valett@gmail.com
    2009年8月21日 6:44
    版主
  • 你好,

    sqlp[0] = new SqlParameter("p0", ProductionName_DropDownList.SelectedItem.Text.Trim()); 没有错误!
    jon.valett@gmail.com
    2009年8月21日 6:47
    版主
  • 您好,
    1、 //Com.Parameters.Add (sqlpara);//这一句该怎样添加?
    用for循环sqlpara来添加例如:
    if (sqlpara != null)
                {
                    foreach (SqlParameter parameter in sqlpara)
                    {
                        Com.Parameters.Add(parameter);
                    }
                }

    2、InsertSql方法中sql语句有问题,insert into ....  ;另@p1与@p1之间是逗号分开

    添加参数具体参考:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx
    • 已标记为答案 lfj0912 2009年8月21日 7:12
    2009年8月21日 6:49
  • Com.Parameters.AddRange (sqlpara);
    调试时,停止在这一句,提示如下:
    SqlParameterCollection 只接受非空的 SqlParameter 类型对象。
    参数名: value
    2009年8月21日 6:58
  • 你好,那是出现异常了,提示上说了,SqlParameterCollection中不能有空的参数,也就是说,new SqlParameter [12],但是只包含2个,其他的都是空的。
    jon.valett@gmail.com
    2009年8月21日 7:01
    版主
  • 论坛是不是有延迟啊,我回答时看不见有回帖的,再近来一看这么多回复的,而且时间都比我早,好几回了。
    2009年8月21日 7:07
  • 打开内容后是不刷新的,你打开的时候别人也打开了,都可以提交,但是你提交后,不会刷新你的页面,只会添加你回复的帖子。
    jon.valett@gmail.com
    2009年8月21日 7:09
    版主
  • 打开内容后是不刷新的,你打开的时候别人也打开了,都可以提交,但是你提交后,不会刷新你的页面,只会添加你回复的帖子。
    jon.valett@gmail.com

    原来这样,多谢。
    2009年8月21日 7:11
  • 可以试下用这种,更省代码:

           private void InsertSql()

            {

                string sql = "insert Guarantee(ProductionName,ProductionModel) values(@p0.@p1)";

               

                SqlParameter [] sqlp = new SqlParameter{new SqlParameter("@p0", Production_DropDownList.SelectedItem.Text.Trim()),
    new SqlParameter("@p1", ProductionName_DropDownList.SelectedItem.Text.Trim())
    };

               


                myExceSql(sql, sqlp)

            }

    2009年8月21日 8:50