向数据库中添加记录的方式有几种?例如插入语句:
sql   =   "insert   Into   新闻   (news_title,news_classid)   Values(news_title,news_classid) "  然后执行就好了,conn.execute(sql) 。可不可以写成一个类,用Datatable或Dataset和 OleDbAdapter 更新进数据库 。该怎样构思,设计,编码?
 

解决方案 »

  1.   

    单独写个方法,仅仅是conn.execute(sql) 。这样估计代码安全性不怎么高吧、起码也要用下try。catch
      

  2.   

    楼主要是数据量过多的话,可以使用批量插入,但是前提是没有重复数据!
    具体实现可以google一下批量插入!
      

  3.   


    qlconnection con=new sqlconnection(conStr);
    con.Open();//打开数据库连接
    string sql1="select * from 表名"; 这个是查看
    string sql2="insert into 表名(列名,列名)values(插入的值,插入的值)";这个是增加
    string sql3="delete from 表名 where 列名=值";删除sqlcommand com=new sqlcommand(要执行的sql语句,con);//这个是用来增加,删除的
    com.ExecuteNonQuery();//执行SqlDataAdapter da = new SqlDataAdapter(sql1,con);//查询
    dataset ds=new dataset();
    da.fill(ds);
      

  4.   

    conn.execute(sql)
    这样容易被注入呀,安全性太差了。
      

  5.   


                /// <summary>
                /// 执行SQL语句,返回影响的记录数
                /// </summary>
                /// <param name="SQLString">SQL语句</param>
                /// <returns>影响的记录数</returns>
                public static int ExecuteSql(string SQLString, params SqlParameter[] cmdParms)
                {
                    using (SqlConnection connection = new SqlConnection(Src))
                    {
                        using (SqlCommand cmd = new SqlCommand())
                        {
                            try
                            {
                                PrepareCommand(cmd, connection, null, CommandType.Text, SQLString, cmdParms);
                                int rows = cmd.ExecuteNonQuery();
                                cmd.Parameters.Clear();
                                return rows;
                            }
                            catch (System.Data.SqlClient.SqlException e)
                            {
                                throw e;
                            }
                        }
                    }
                }           /// <summary>
                /// Prepare a command for execution
                /// </summary>
                /// <param name="cmd">SqlCommand object</param>
                /// <param name="conn">SqlConnection object</param>
                /// <param name="trans">SqlTransaction object</param>
                /// <param name="cmdType">Cmd type e.g. stored procedure or text</param>
                /// <param name="cmdText">Command text, e.g. Select * from  Products</param>
                /// <param name="cmdParms">SqlParameters to use in the command</param>
                private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
                {                if (conn.State != ConnectionState.Open)
                        conn.Open();                cmd.Connection = conn;
                    cmd.CommandText = cmdText;                if (trans != null)
                        cmd.Transaction = trans;                cmd.CommandType = cmdType;                if (cmdParms != null)
                    {
                        foreach (SqlParameter parm in cmdParms)
                            cmd.Parameters.Add(parm);
                    }
                }下载个动软代码生成器,生成的这样的代码可以看到很多的。通过参数化命令执行sql文。
      

  6.   


    SqlConnection con=new SqlConnection("连接数据库字符串");
    con.Open();//打开数据库连接
    sqlcommand com=new sqlcommand(sql语句,con);//增、删、改sql语句
    com.ExecuteNonQuery();//执行操作
    con.Close();
    SqlConnection con=new SqlConnection("连接数据库字符串");
    con.Open();//打开数据库连接
    SqlDataAdapter da = new SqlDataAdapter(sql语句,con);//查询sql语句
    dataset ds=new dataset();
    da.fill(ds);//执行操作
    con.Close();
      

  7.   

    面向对象思想很重要!我们公司插入数据库直接     类.save()
      

  8.   


    System.Data.SqlClient.SqlDataAdapter sda = new System.Data.SqlClient.SqlDataAdapter();//定义一个SqlDataAdapter 的实例
         SqlCommand scmd = new SqlCommand();//定义一个SqlCommand的实例,以便绑定
         scmd.CommandType = CommandType.Text;
         scmd.Connection = new SqlConnection(ConnectionString);
         scmd.Parameters.Add("@acc_title_id", SqlDbType.Int, 4, "acc_title_id");//重要的地方,将dt的列写到参数中去
         scmd.Parameters.Add("@acc_std_title_id", SqlDbType.Int, 4, "acc_std_title_id");
         scmd.Parameters.Add("@back_id", SqlDbType.Int, 4, "back_id");
       scmd.CommandText = string.Format("update t_std_acc_title_ent_acc_title set acc_title_id=@acc_title_id where acc_std_title_id = @acc_std_title_id and acc_id = {0} and acc_title_id=@back_id", eleid);
         sda.UpdateCommand = scmd;//更新语句
         scmd = new SqlCommand();
         scmd.CommandType = CommandType.Text;
         scmd.Connection = new SqlConnection(ConnectionString);
         scmd.Parameters.Add("@acc_title_id", SqlDbType.Int, 4, "acc_title_id");
         scmd.Parameters.Add("@acc_std_title_id", SqlDbType.Int, 4, "acc_std_title_id");
         scmd.CommandText = string.Format("insert into t_std_acc_title_ent_acc_title values(@acc_std_title_id,{0},@acc_title_id)",eleid);
         sda.InsertCommand = scmd;//插入语句
         sda.Update(dt.Select(null, null, DataViewRowState.ModifiedCurrent));//先执行更新
         sda.Update(dt.Select(null, null, DataViewRowState.Added));//再执行插入使用SqlDataAdapter的Update方法更新DataSet到数据库中