2 u013156021 u013156021 于 2013.12.25 16:51 提问

如何用VS2005对SQL数据库进行新增保存修改,用Visual C# Windows应用程序

表名STU
CSDN移动问答

本人小白,求教大神给出具体的步奏

2个回答

syx_1046
syx_1046   2014.05.12 19:14

`using System.Data.OleDb;
string connString, sqlString;
OleDbConnection conn = new OleDbConnection();
OleDbCommand comm = new OleDbCommand();
OleDbDataAdapter da = new OleDbDataAdapter();
DataTable dt = new DataTable();
connString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=|DataDirectory|STU.mdb";//数据库名称
conn.ConnectionString = connString;
comm.Connection = conn;
sqlString = "Insert into STU Values('"+ idtextBox.Text + "','" + nametextBox.Text +
"','" + cjtextBox.Text + "')";
comm.CommandText = sqlString;//添加语句
//sqlString = "delete from STU where id='" + idtextBox.Text + "'"; //删除语句
//string sqlString = "update STU set [cj]='" + cjtextBox.Text + "'where name = '" + namestring + "'";//修改语句
comm.CommandText = sqlString;
int countInteger;
try
{
conn.Open();
countInteger = comm.ExecuteNonQuery();
if (countInteger > 0)
{
MessageBox.Show("添加成功","Add ",MessageBoxButtons.OK,MessageBoxIcon.Information);
}

}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
}
`
这是例子,还有把数据库中id那一项的名称改了,id属于关键字就像date,if之类的一样,用id做表头名称程序会出错.

lzp_lrp
lzp_lrp   Ds   Rxr 2015.10.25 08:46
 C#中用datagridview显示access数据库信息并通过datagridview修改存储数据

问题描述,在access数据库中有名称为jinbgkuangone(井况1),jingkuangtwo(井况2)...的一系列数据表,在C#的form窗体中添加datagridview控件,并添加一个button按钮,改名称为井况1(我们的计划是次按钮叫做导入数据,以分别显示井况1,井况2...的数据),将代码写在button井况1下,另外两个按钮,分别为井况2,井况3。将代码分别写在三个按钮下,以控制任务的执行开始,再添加一个名字为保存的按钮,以进行修改保存。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace shujuku3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private DataSet ds = new DataSet();           //声明并初始化DataSet
        // private SqlDataAdapter dataAdapter;                //声明DataAdapter
        //private DataTable ads;
        private void button1_Click(object sender, EventArgs e)
        {
            string constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\Visual Studio\\GuanZhuXinXi.mdb";
            //创建连接对象
            string sql = "select * from jingkuangone";
            OleDbConnection conn = new OleDbConnection(constr);
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sql, conn);
            //DataSet ads = new DataSet();//由于在上边已经private DataSet 了ds,如果需要在原表更新井况1的数据,此处就必须屏蔽,而井况2,3则必须重新DataSet ds。也就是说 需要对哪个表更新,就屏蔽其对应程序的DataSet 另外的一个井况代码此处不能屏蔽。
            dataAdapter.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0].DefaultView;
            dataGridView1.AllowUserToAddRows = false;//datagridview
        }
       private void button2_Click(object sender, EventArgs e)
        {
            string constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\Visual Studio\\GuanZhuXinXi.mdb";
            //创建连接对象
            string sql = "select * from jingkuangtwo";
            OleDbConnection conn = new OleDbConnection(constr);
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
            dataGridView1.AllowUserToAddRows = false;
        }
        private void button3_Click(object sender, EventArgs e)
        {
            string constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\Visual Studio\\GuanZhuXinXi.mdb";
            string sql = "select * from jingkuangthree";
            //创建连接对象
            OleDbConnection conn = new OleDbConnection(constr);
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds);
            dataGridView1.DataSource = cds.Tables[0];
            dataGridView1.AllowUserToAddRows = false;
        }
}
}
现在的情况是我们一般希望在datagridview中更改数据,并加以保存。那么保存有两种说法:1.将更改的数据保存在原来的数据表中,比如我们用datagridview显示井况1的数据,更改后,我们将新的数据覆盖原数据。2.另外在我们创建的access数据库中创建新表,比如创建名称为jingkuangfour的数据表,以保存井况1数据更改的结果,也就是相当于数据另存为的操作。那么针对2方法,还可以细分,一则是在我们原有的数据表中创建新表,二则是我们用ADOX创建一个新的数据库,在其里面创建新表以保存结果。
方法一的代码
  private void button4_Click(object sender, EventArgs e)
        {
            //弹出确认消息框
            DialogResult result = MessageBox.Show("确定要将修改保存到数据库吗?",
                "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            if (result == DialogResult.OK)
            {

                    string fuyadan_number = dataGridView1.Rows[i].Cells[6].Value.ToString();
                    string beizhu = dataGridView1.Rows[i].Cells[7].Value.ToString();
                    string inst = "INSERT INTO jingkuangfour(管柱名称,型号,管柱长度,管柱数量,下入深度,射孔弹数量,负压弹数量,备注)values('" + name + "','" + xinghao + "','" + guanzhu_length + "','" + guanzhu_number + "','" + xiarushendu + "','" + shekongdan_number + "','" + fuyadan_number + "','" + beizhu + "')";

                    OleDbCommand cmd = new OleDbCommand(inst,connn);

                    cmd.ExecuteNonQuery();




                }
                connn.Close();
                MessageBox.Show("保存成功", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

            }

 }
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!