c# 向mysql插入数据_[转载] c# 中添加数据到数据库中的三种方法 .

本文详细介绍了C#中向MySQL数据库插入数据的三种方法:1) 利用SQL语句添加;2) 通过SqlParameter参数添加;3) 使用存储过程添加。每种方法都包括具体的操作步骤和示例代码,帮助开发者更好地理解和应用。
摘要由CSDN通过智能技术生成

1.利用SQL语句添加

在SQL语句中提供了INSERT语句进行数据添加,其语法格式如下。

INSERT [Into] table_name[(column_list)] values (data_values)

说明:INSERT是关健字,Into是可选项,table_name为表名,即向哪个表中插入数据。column_list为表中列名,如果为多列,则列名间用逗号隔开,省略该参数,即向表中所有列插入数据。data_values为向表中插入的数据。

利用SQL语句向数据库添加记录时,首先要创建SqlConnection类的一个对象,用来连接数据库,然后定义添加的SQL字符串,最后使用SqlCommand对象的ExecuteNonQuery方法执行记录的添加操作。

本例通过在指定的文本框中输入所要添加的用户信息,单击【添加】按钮,通过在按钮的Click事件中利用SQL语句来实现添加过程,添加的信息将显示在GridView控件中。

程序开发步骤:

(1)新建一个网站,将其命名为Ex19_01,默认主页为Default.aspx。

(2)向Default.aspx页中添加一个Table表格,用于布局页面,然后在Table表格中分别添加一个GridView控件、3个TextBox控件和一个Button控件,用来显示添加的结果、输入添加信息和执行添加命令。

(3)主要程序代码。

首先,在Page_Load事件中调用自定义的绑定方法。

protected void Page_Load(object sender, EventArgs e)

{

if (IsPostBack)

{

GridViewBind();

}

}

自定义绑定方法GridViewBind()代码如下。

public void GridViewBind()

{

SqlConnection con = new SqlConnection("Server=(Local);Uid=sa;pwd=;DataBase=fangdawei");

con.Open();

SqlDataAdapter ada = new SqlDataAdapter("select * from tb_Member", con);

DataSet ds = new DataSet();

ada.Fill(ds);

GridView1.DataSource = ds;

GridView1.DataBind();

con.Close();

}

自定义一个getConut()方法,此方法将用来判断是否有添加了相同的记录,代码如下。

public int getConut()

{

SqlConnection con = new SqlConnection("Data Source=(local);Database=fangdawei;Uid=sa;Pwd=;");

con.Open();

string str = "select * from tb_Member where name='" + TextBox1.Text + "'and sex='" + TextBox2.Text + "'and nPlace='" + TextBox3.Text + "'";

SqlCommand com = new SqlCommand(str, con);

int intcont = Convert.ToInt32(com.ExecuteScalar());

con.Close();

com.Clone();

return intcont;

}

"添加"按钮Click事件代码如下。

protected void Button1_Click(object sender, EventArgs e)

{

if (getConut() != 0)//判断是否添加了相同的记录

{

Response.Write("alert('对不起!不允许填写相同记录!')");

}

else

{

try

{

SqlConnection sqlcon = new SqlConnection("Data Source=(local);Database=fangdawei;Uid=sa;Pwd=;");

sqlcon.Open();

string InsertSql = "insert into tb_Member(name,sex,nPlace) values ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "')";

SqlCommand com = new SqlCommand(InsertSql, sqlcon);

com.ExecuteNonQuery();

SqlDataAdapter ada = new SqlDataAdapter("select * from tb_Member", sqlcon);

DataSet ds = new DataSet();

ada.Fill(ds, "tb_Member ");

GridView1.DataSource = ds;

GridView1.DataBind();

sqlcon.Close();

Response.Write("alert('添加成功!')");

}

catch(Exception ex)

{

Response.Write("ex.Message.ToString()");

}

}

}

2.通过SqlParameter参数添加

通过SqlParameter参数向数据库添加数据,主要使用SqlParameter类的一些属性和方法。

首先要创建SqlConnection类的一个对象,用来连接数据库,然后插入一个带参数的SQL命令。

例如,使用的带参数的SQL命令实现向数据库的图书信息表(“tb_BookInfo”表)中添加相关的图书信息,代码如下。

insert into tb_BookInfo (BookName,BookIntroduce,BookPrice,BookIsNew) values(@BookName,@BookIntroduce,@BookPrice,@BookIsNew)

插入完带参数的SQL命令后,通过SqlCommand对象的Add方法向SqlParameter中添加参数,并给相应的参数赋值,最后使用SqlCommand对象的ExecuteNonQuery方法执行记录的添加操作。

说明:在使用带参数的SQL命令(如insert、update和delete等命令)时,其中的参数必须要用标识符@来标记,而参数名称可自己定义。在这种情况下,参数与命令关联的顺序就不重要了。

注意:OLEDB和ODBC数据源使用以问号(?)占位符标识的定位参数。参数的顺序是重要的。这一点与SQL Server是不同的,要牢记!

本例通过在页面指定的文本框中输入要添加的相关信息,通过在【添加】按钮的Click事件中使用SqlParameter参数来实现添加操作,添加的信息将显示在GridView控件中。

程序开发步骤:

(1)新建一个网站,将其命名为Ex19_02,默认主页为Default.aspx。

(2)向Default.aspx页中添加一个Table表格,用于布局页面,然后在Table表格中分别添加一个GridView控件、4个TextBox控件和一个Button控件,用来显示添加的结果、输入添加信息和执行添加命令。

(3)主要程序代码。

“添加信息”按钮Click事件代码如下:

protected void Button1_Click(object sender, EventArgs e)

{

SqlConnection con = new SqlConnection("Data Source=(local);Database=fangdawei;Uid=sa;Pwd=;");

con.Open();

string str = "select count(*) from tb_BookInfo where BookName='" + TextBox1.Text.ToString() + "'";

SqlCommand com = new SqlCommand(str, con);

int intcont = Convert.ToInt32(com.ExecuteScalar());

if (intcont > 0)//判断数据库中是否有相同的录

{

Response.Write("alert('对不起!不允许填写相同记录!')");

}

else

{

try

{

//插入命令

string sqlstr = "insert into tb_BookInfo (BookName,BookIntroduce,BookPrice,BookIsNew) values(@BookName,@BookIntroduce,@BookPrice,@BookIsNew)";

SqlCommand mycom = new SqlCommand(sqlstr, con);

//添加参数

mycom.Parameters.Add(new SqlParameter("@BookName", SqlDbType.VarChar,50));

mycom.Parameters.Add(new SqlParameter("@BookIntroduce", SqlDbType.VarChar,50));

mycom.Parameters.Add(new SqlParameter("@BookPrice", SqlDbType.Money,8));

mycom.Parameters.Add(new SqlParameter("@BookIsNew", SqlDbType.Char,10));

//给参数赋值

mycom.Parameters["@BookName"].Value = TextBox1.Text;

mycom.Parameters["@BookIntroduce"].Value = TextBox2.Text;

mycom.Parameters["@BookPrice"].Value = Convert.ToDecimal(TextBox3.Text);

mycom.Parameters["@BookIsNew"].Value = DropDownList1.SelectedValue.ToString();

//执行添加语句

mycom.ExecuteNonQuery();

con.Close();

BindData();

Response.Write("alert('添加成功!')");

}

catch(Exception ex)

{

Response.Write(ex.Messgae.ToString());

}

}

}

3、通过存储过程添加

存储过程可以过滤SQL语句中的非法字符,而且在创建时可直接在服务器上进行编译,所以执行起来比单个SQL语句快。通过存储过程添加数据,可以提高程序的执行效率,而且便于以后的维护。

利用存储过程向数据库添加记录时,首先要创建SqlConnection类的一个对象,用来连接数据库,然后使用SqlCommand对象的CommandType属性指定要执行的SQL文本命令为存储过程,并通过Add方法向SqlParameter中添加参数,最后使用SqlCommand对象的ExecuteNonQuery方法执行数据更新操作。

本例主要应用存储过程实现向图书信息数据库中添加数据,在页面指定的文本框中输入相关的添加信息,通过【添加】按钮的Click事件中调用存储过程来实现添加操作。

使用存储过程添加数据之前,首先需要创建存储过程probookinfo,代码如下:

CREATE    PROCEDURE probookinfo

(@BookName     [VarChar](50),

@BookIntroduce    [VarChar](50),

@BookPrice    [Money],

@BookIsNew   [VarChar](50))

AS INSERT INTO [fangdawei].[dbo].[tb_BookInfo] (

[BookName],

[BookIntroduce],

[BookPrice],

[BookIsNew])

VALUES (

@BookName,

@BookIntroduce,

@BookPrice,

@BookIsNew)

GO

程序开发步骤:

(1)新建一个网站,将其命名为Ex19_03,默认主页为Default.aspx。

(2)向Default.aspx页中添加一个Table表格,用于布局页面,然后在Table表格中分别添加一个GridView控件、4个TextBox控件和一个Button控件,用来显示添加的结果、输入添加信息和执行添加命令。

(3)主要程序代码。

“添加信息”按钮Click事件代码如下: protected void Button1_Click(object sender, EventArgs e)

{

SqlConnection myconn = new SqlConnection("server=(local);Database=fangdawei;Uid=sa;Pwd=");

//打开链接

myconn.Open();

string str = "select count(*) from tb_BookInfo where BookName='" + TextBox1.Text.ToString() + "'";

//创建SqlCommand对象

SqlCommand com = new SqlCommand(str,myconn);

int intcont = Convert.ToInt32(com.ExecuteScalar());

if (intcont > 0)

{

Response.Write("alert('对不起!不允许填写相同记录!')");

}

else

{

try

{

SqlCommand mycom = new SqlCommand("probookinfo", myconn);

//调用存储过程

mycom.CommandType = CommandType.StoredProcedure;

//添加参数

SqlParameter[] prams ={

new SqlParameter("@BookName", SqlDbType.VarChar, 50),

new SqlParameter("@BookIntroduce", SqlDbType.VarChar, 50),

new SqlParameter("@BookPrice", SqlDbType.Money, 8),

new SqlParameter("@BookIsNew", SqlDbType.Char, 10),

};

//给参数赋值

prams[0].Value = TextBox1.Text;

prams[1].Value = TextBox2.Text;

prams[2].Value = Convert.ToDecimal(TextBox3.Text);

prams[3].Value = DropDownList1.SelectedValue.ToString();

foreach (SqlParameter parameter in prams)

{

mycom.Parameters.Add(parameter);

}

//执行sql语句

mycom.ExecuteNonQuery();

myconn.Close();

BindData();

Response.Write("alert('添加成功!')");

}

catch(Exception ex)

{

Response.Write(ex.Message.ToString());

}

}

}

C#,将DataTable数据插入MySQL数据库可以通过使用ADO.NET的MySqlClient组件来实现。以下是一个简单的步骤说明: 1. 首先,确保你的项目已经安装了MySql.Data的NuGet包,这是MySQL数据库的官方.NET连接器。 2. 创建一个连接字符串,用于指定连接到MySQL数据库的必要信息,包括服务器地址、端口、数据库名、用户名和密码。 3. 使用`MySqlConnection`类创建一个新的数据库连接,并打开它。 4. 创建一个`MySqlCommand`对象,并将之前创建的连接对象作为参数传递给它。 5. 准备一个SQL插入语句,这个语句应该根据DataTable的列来构建,确保列的顺序和数据类型与MySQL数据库的表相匹配。 6. 使用`MySqlCommand`对象的`ExecuteNonQuery`方法执行SQL语句。这个方法用于执行诸如INSERT、UPDATE和DELETE等修改数据的SQL语句。 7. 遍历DataTable的每一行数据,使用参数化查询将每行数据插入数据库。 下面是一个简单的代码示例: ```csharp using System; using MySql.Data.MySqlClient; public void InsertDataTableIntoMySQL(DataTable dataTable, string connectionString) { using (MySqlConnection conn = new MySqlConnection(connectionString)) { try { conn.Open(); foreach (DataRow row in dataTable.Rows) { string sql = "INSERT INTO your_table_name (column1, column2, ...) VALUES (@value1, @value2, ...)"; using (MySqlCommand command = new MySqlCommand(sql, conn)) { // 添加参数并设置值 command.Parameters.AddWithValue("@value1", row["column1"]); command.Parameters.AddWithValue("@value2", row["column2"]); // ...为其他列添加参数 // 执行命令 command.ExecuteNonQuery(); } } } catch (Exception ex) { // 异常处理 Console.WriteLine("Error inserting data: " + ex.Message); } } } ``` 在这个例子,你需要将`your_table_name`替换为你要插入数据的目标表名,将`column1`, `column2`, ... 替换为DataTable的列名,并且确保参数名与DataTable数据对应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值