запись в БД MS-Access Проблема до диеза - PullRequest
0 голосов
/ 28 сентября 2010

Эй, ребята, я просто практикую Программу по чтению, записи данных в Access DB на C #, и у меня проблема с записью данных в Access DB, хотя я могу читать данные, т.е. fetchin 'работает хорошо, но когда я вставляю данные, мой "ExecuteNonQuery" работает нормально, я имею в виду без ошибок, но при открытии БД доступа данных там нет .... вот код, который я пытаюсь сделать. ..


        //// Function For ExecuteNonQuery
        public static bool ExecuteNonQuery(string Query)
        {

            OleDbCommand oledbCommand = new OleDbCommand(Query, connection);
            if (connection.State == ConnectionState.Open)
                connection.Close();
            try
            {
                connection.Open();
                if (oledbCommand.ExecuteNonQuery() > 0)
                    return true;
                else
                    return false;
            }
            catch (Exception)
            {
                return false;
            }
            finally
            {
                connection.Close();
            }
        }

Этот код ниже для добавления данных, которые запускаются при нажатии кнопки «Добавить»


        private void btnAdd_Click(object sender, EventArgs e)
        {
            simOperator.aim_network_name = txtAimNetNm.Text;
            simOperator.network_id = txtOxiNetID.Text;
            simOperator.network_name = txtNetName.Text;
            simOperator.pack_id = txtPackID.Text;
            simOperator.pack_name = txtPackName.Text;
            SimOperator.Add(simOperator);
            fillText();
        }
        public void fillText()
        {
            txtResult.Text = "";
            SimOperator[] simOperatorList = SimOperator.GetAllOperators();
            foreach (SimOperator sm in simOperatorList)
            {
                txtResult.Text += Program.operator_id + " " + sm.aim_network_name + " " + sm.network_name + " " + sm.network_id + " " + sm.pack_id + " " + sm.pack_name + "\r\n";
            }
        }

Вот функция «Добавить»


            string Query = string.Format("insert into {0}({2}) values({1});", calledObject.Name, PropertyValue,PropertyName);
            ExecuteNonQuery(Query);

Actuall SQL-запрос:

insert into SimOperator(aim_network_name,network_id,network_name,pack_id,pack_name) values('FiveNet','2563','FiveNet-Kurla','1236','5236');

Да и моя строка подключения


static OleDbConnection connection = new OleDbConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);

Файл App.config содержит строку как

add key="ConnectionString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\AutoMobileRecharge.mdb;User Id=; Password=;Persist Security Info=True"

То, что я не получаю, это то, что я поместил текстовую область рядом со всеми текстовыми полями внутренних полей, чтобы я мог видеть, что вставляется, поэтому при вставке данных эта текстовая область показывает данные идеально, но когда я открываю Доступ к БД, тогда нет никаких данных в этом, когда я закрываю свое приложение и снова запускаю его, тогда эта текстовая область пуста ... это звучит странно для меня .. Любой, кто сталкивался с такой проблемой, пожалуйста, помогите мне здесь ..

1 Ответ

2 голосов
/ 28 сентября 2010

Вы делаете это во время отладки? в этом случае посмотрите, есть ли в папке отладки файл mdf и содержит ли вы только что вставленные данные. Скопируйте какой-нибудь файл в папку отладки при запуске приложения в этом режиме. Если я правильно помню, есть возможность запретить копирование файлов при отладке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...