string sql = @" INSERT into [userform](username,userpassword, userpasstype)  VALUES ('{0}','{1}','{2}' )";
                   sql = string.Format(sql, userModal.Username, userModal.Userpassword, userModal.Userpasstype);
                   
                   SqlCommand cmd = new SqlCommand(sql, conn);
                   
                   conn.Open();
                  
                   ll = cmd.ExecuteNonQuery();
                   conn.Close();               
                   return ll;
ll的返回值是1,但是数据库里面的数据没有变化.winform窗体不关掉新增后从数据库读取,datatable就有新增的数据,关掉重开datatable从数据库读取就没有新增的数据

解决方案 »

  1.   

      public int addinfo(userModal userModal)
           {
               using (SqlConnection conn = new SqlConnection(sqlconnstring))
               {
                   int ll = 0;
                   try
                   {
                       //string sql = @"INSERT [userform](username,userpassword, userpasstype)  VALUES ('{0}','{1}','{2}' )";
                       //sql = string.Format(sql, userModal.Username, userModal.Userpassword, userModal.Userpasstype);
                       
                       //SqlCommand cmd = new SqlCommand();
                       //cmd.Connection = conn;
                       //cmd.CommandText = sql;
                       //conn.Open();
                       //ll = cmd.ExecuteNonQuery();
                     
                       //cmd.CommandText = "SELECT SCOPE_IDENTITY()";
                       //ll = Convert.ToInt32(cmd.ExecuteScalar());
                       //conn.Close();                   string sql = @" INSERT into [userform](username,userpassword, userpasstype)  VALUES ('{0}','{1}','{2}' )";
                       sql = string.Format(sql, userModal.Username, userModal.Userpassword, userModal.Userpasstype);
                       
                       SqlCommand cmd = new SqlCommand(sql, conn);
                       
                       conn.Open();
                      
                       ll = cmd.ExecuteNonQuery();
                       conn.Close();               
                       return ll;
                   }
                   catch (Exception)
                   {                   throw;
                   }
               },有没有高手帮忙看看啊...
      

  2.   

    好久以前写的一段了,参考下吧using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data.OracleClient;
    using System.Data;namespace FwBatch
    {
        /// <summary>
        /// Ver1.0 初版
        /// 【DB関連操作クラス】
        /// Created by cho 2012/06/25 13:26:01
        /// </summary>
        public class DBControl
        {
            //内部変数宣言
            private OracleConnection conn;
            private OracleCommand comm;
            private OracleTransaction transaction;        //インスタンス単一化設定
            private DBControl() { }
            private static DBControl dbControl;
            public static DBControl GetInstance()
            {
                try
                {
                    if (dbControl == null)
                    {
                        dbControl = new DBControl();
                    }
                    return dbControl;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }        /// <summary>
            /// DB接続オープン
            /// </summary>
            public void OpenDBConnection(string connectionString)
            {
                try
                {
                    if (conn != null && conn.State == ConnectionState.Open) return;
                    conn = new OracleConnection();
                    conn.ConnectionString = connectionString;
                    conn.Open();
                }
                catch (Exception e)
                {
                    throw e;
                }
            }        /// <summary>
            /// DB接続切断
            /// </summary>
            public void CloseDBConnection()
            {
                try
                {
                    if (conn != null && conn.State == ConnectionState.Open)
                    {
                        //DBConnection切断する前にその対応コマンドを解放する
                        if (comm != null) { comm.Dispose(); }
                        conn.Close();
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
            }        /// <summary>
            /// トランザクション開始
            /// </summary>
            public void BeginTransaction()
            {
                try
                {
                    if (transaction == null)
                    {
                        transaction = conn.BeginTransaction();
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
            }        /// <summary>
            /// トランザクションコミット
            /// </summary>
            public void CommitTransaction()
            {
                try
                {
                    if (transaction != null)
                    {
                        transaction.Commit();
                        transaction = null;
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
            }        /// <summary>
            /// トランザクション取消
            /// </summary>
            public void RollbackTransaction()
            {
                try
                {
                    if (transaction != null)
                    {
                        transaction.Rollback();
                        transaction = null;
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
            }        /// <summary>
            /// 実行SQLよりデータの取得処理用関数
            /// </summary>
            /// <param name="executeSql"></param>
            /// <returns></returns>
            public DataTable GetDataByExecuteSql(string executeSql)
            {
                try
                {
                    DataTable retValue = new DataTable();
                    comm = conn.CreateCommand();
                    comm.CommandText = executeSql;
                    comm.CommandType = CommandType.Text;
                    comm.Transaction = this.transaction;
                    OracleDataAdapter odAdapter = new OracleDataAdapter(comm);
                    odAdapter.Fill(retValue);
                    //odAdapter.FillSchema(retValue, SchemaType.Source);//odAdapter.Fill(retValue); 
                    return retValue;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }        /// <summary>
            /// 実行SQLよりデータの取得処理用関数
            /// </summary>
            /// <param name="executeSql"></param>
            /// <returns></returns>
            public string GetValueByExecuteSql(string executeSql)
            {
                try
                {
                    string retValue = string.Empty;
                    comm = conn.CreateCommand();
                    comm.CommandText = executeSql;
                    comm.CommandType = CommandType.Text;
                    comm.Transaction = this.transaction;
                    retValue = comm.ExecuteScalar().ToString();
                    return retValue;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }        /// <summary>
            /// 実行SQLよりデータの挿入、削除等の処理用関数
            /// </summary>
            /// <param name="executeSql"></param>
            public void ExecuteNonQueryByExecuteSql(string executeSql)
            {
                try
                {
                    comm = conn.CreateCommand();
                    comm.CommandText = executeSql;
                    comm.CommandType = CommandType.Text;
                    comm.Transaction = this.transaction;
                    comm.ExecuteNonQuery();
                }
                catch (Exception e)
                {
                    throw e;
                }
            }        /// <summary>
            /// Procedureを実行し、その戻り値を取得する
            /// </summary>
            /// <param name="procedure"></param>
            /// <param name="parameters"></param>
            /// <returns></returns>
            public List<string> ExecuteByProcedure(string procedure, OracleParameter[] oracleParameters)
            {
                try
                {
                    List<string> retValue = new List<string>();
                    comm = conn.CreateCommand();
                    comm.CommandText = procedure;
                    comm.CommandType = CommandType.StoredProcedure;                foreach (OracleParameter oracleParameter in oracleParameters)
                    {
                        comm.Parameters.Add(oracleParameter);
                    }                comm.ExecuteNonQuery();                foreach (OracleParameter oracleParameter in oracleParameters)
                    {
                        if (oracleParameter.Direction == ParameterDirection.Output)
                        { 
                            retValue.Add(oracleParameter.Value.ToString());
                        }
                    }                return retValue;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
    }