Как вставить значение Textfield в базу данных в C # для следующего кода - PullRequest
2 голосов
/ 30 июля 2010
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.Odbc;

namespace Username
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {

        }

        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "" && textBox2.Text == "" && textBox3.Text == "")
                MessageBox.Show("Plz Specify the UserName & Password","ERROR",MessageBoxButtons.OKCancel,MessageBoxIcon.Error);
            else if (textBox2.Text == "" && textBox3.Text == "")
                MessageBox.Show("Plz Specify the Password", "ERROR", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
            else if (textBox3.Text == "")
                MessageBox.Show("Plz RE Enter the Password", "ERROR", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
            else
            {
                string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Samples\\login.mdb";
               String uname, pass;
                uname = textBox1.Text;
                //System.Windows.Forms.MessageBox.Show(uname);
                pass = textBox2.Text; 
                OleDbConnection myConnection = new OleDbConnection(connectionString);
                myConnection.Open();
                int i=107;
                string query = "insert into EMPLOYEE_TABLE (ID,UserName,Password) VALUES (118,@uname,@pass)";

                //string query = "insert into LOGIN_TABLE (ID,UserName,Password) VALUES (i,'uname',' pass')";
                i++;

                OleDbCommand myCommand = new OleDbCommand();
                myCommand.CommandText = query;
                myCommand.Connection = myConnection;
                myCommand.ExecuteNonQuery();
                myConnection.Close();


                System.Windows.Forms.MessageBox.Show("User Account Succefully Created", "Caption", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

            }
        }
    }
}

1 Ответ

4 голосов
/ 30 июля 2010

Вы почти у цели, но вам нужно заполнить параметры, которые вы создали в своем запросе:

OleDbCommand myCommand = new OleDbCommand();
myCommand.CommandText = query;

//TODO: Review the datatypes and lengths for these parameters
OleDbParameter myParm = myCommand.Parameters.Add("@uname", OleDbType.VarChar, 50);
myParm.Value = textBox1.Text;

myParm = myCommand.Parameters.Add("@pass", OleDbType.VarChar, 50);
myParm.Value = textBox2.Text;

myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();

См. эту статью MSDN для получения дополнительной информации о параметрах команды.

...