.net mysql增删改查_.NET连接数据库以及基本的增删改查操作教程

一、前言

因为这学期选修的 .net 课程就要上机考试了,所以总结下.net 操作 SqlServer 数据的方法。(因为本人方向是 Java,所以对.net 的了解不多,但以下所写代码均是经过测试成功的),下面话不多说了,来一起看看详细的介绍吧。

二、.net 连接数据库

在web.config文件中配置数据库连接,代码写在内

其中 sa  为 SqlServer 数据库账号,sa123456 为数据库账号密码,dataset 位数据库名。

通过上面的代码大家不难看出这是通过SqlServer数据库的账号连接的。那么如果需要通过Windows身份认证连接呢?

其中,dataset 为数据库名。

配置好了之后,再在cs后台文件中使用 Connection 对象连接

String constr = ConfigurationManager.AppSettings["connstring"].ToString();

SqlConnection myconn = new SqlConnection(constr);

很明显,第一个句获取我们在 web.config 中配置的数据库的信息的字符串,然后 new 一个 SqlConnection 对象。

这个时候也许你会想,既然是获取配置文件中的字符串,那么可不可以直接在cs后台文件中写而不需要再配置文件中配置后再获取呢?答案是肯定的。

String constr = "Data Source=.;Initial Catalog=dataset;Integrated Security=True";

SqlConnection myconn = new SqlConnection(constr);

仔细对比下先前写的配置文件,就知道这两种方式的相同点了。

那么现在简单说下 Connection 对象是个什么。在 ADO.NET 中 Connection 对象的主要用途是打开和关闭数据库的连接,通过这个对象,可以对数据库进行访问和操作。

String constr = "Data Source=.;Initial Catalog=dataset;Integrated Security=True";

SqlConnection myconn = new SqlConnection(constr);

myconn.Open();

//相关数据库操作

myconn.Close();

Open 就是打开数据库,Close 就是关闭数据库。

三、.net 操作数据库

那么通过 Connection 对象打开数据库后怎么对数据库操作呢?在 Dao.Net 中提供了Command 对象,主要就是用来对数据库进行增、删、改、查的操作。

下面我们直接看个查找操作的例子:

String constr = "Data Source=.;Initial Catalog=dataset;Integrated Security=True";

SqlConnection myconn = new SqlConnection(constr);

myconn.Open();

string sql = "select * from custom ";

SqlCommand cmd = new SqlCommand(sql, sqlConnection);

SqlDataReader dataReader = cmd.ExecuteReader();

Show.Text = "

学号姓名学院年龄昵称";

while (dataReader.Read())

{

Show.Text = Show.Text + "

" + dataReader[0].ToString()

+ "

" + dataReader[1].ToString()

+ "

" + dataReader[2].ToString()

+ "

" + dataReader[3].ToString()

+ "

" + dataReader[4].ToString() + "";

}

sqlConnection.Close();

通过上面这段代码,不难发现,在开启Connection对象后,首先我们需要写一段查询的sql语句:

string sql = "select * from custom ";

然后,new 一个SqlCommand对象,参数是 sql 语句 和 Connection 对象 。

SqlCommand cmd = new SqlCommand(sql, sqlConnection);

再然后,我们通过 SqlCommand 对象的 ExecuteReader 方法,执行查询语句,并返回一个DataReader 对象。

SqlDataReader dataReader = cmd.ExecuteReader();

再再然后,就是将 DataReader 对象中的数据(也就是我们查询的数据)读取出来了

while (dataReader.Read())

{

Show.Text = Show.Text + "

" + dataReader[0].ToString()

+ "

" + dataReader[1].ToString()

+ "

" + dataReader[2].ToString()

+ "

" + dataReader[3].ToString()

+ "

" + dataReader[4].ToString() + "";

}

最后,当然是关闭我们的 Connection 对象了。

sqlConnection.Close();

查询操作是通过 Command 对象的 ExecuteReader 方法来操作,那么增删改呢?

增删改的话就得用到 Command 对象的 ExecuteNonQuery 方法了。这个方法返回的是受影响的行数,也就是说如果操作失败,返回的是0。

还是看个增加数据的例子吧:

myconn.Open();

String sql = "insert into custom values('" + uid.Text + "','" + uname.Text + "','" + udepart.Text

+ "'," + uage.Text + ",'" + uename.Text + "','" + upassword.Text + "')";

SqlCommand cmd = new SqlCommand(sql, myconn);

if (cmd.ExecuteNonQuery() > 0)

{

this.Response.Write("");

}

else

{

this.Response.Write("");

}

myconn.Close();

通过上面代码,不难发现,其实套路和我们写的查询差不多,就是sql语句不同和调用的Command对象不同而已。

但是,仔细看会发现这段代码是使用了 sql 语句拼接的。这种方式写起来比较乱(又是双引号又是单引号的),还有可能被 sql 注入。这个时候就会想,能不能有占位符呢?答案是肯定的。

myconn.Open();

SqlCommand cmd = myconn.CreateCommand();

cmd.CommandText = "insert into custom values(@uid,@uname,@udepart,@uage,@uename,@upassword)";

cmd.Parameters.AddWithValue("@uid", uid.Text);

cmd.Parameters.AddWithValue("@uname", uname.Text);

cmd.Parameters.AddWithValue("@udepart", udepart.Text);

cmd.Parameters.AddWithValue("@uage", uage.Text);

cmd.Parameters.AddWithValue("@uename", uename.Text);

cmd.Parameters.AddWithValue("@upassword", upassword.Text);

if (cmd.ExecuteNonQuery() > 0)

{

this.Response.Write("");

}

else

{

this.Response.Write("");

}

myconn.Close();

ShowAll();

这段代码与之前代码的不同之处在于:

1.使用 Connection 对象的 CreateCommand 方法创建了一个SqlCommand 对象。

SqlCommand cmd = myconn.CreateCommand();

2.使用了Command 对象的 CommandText 属性写 sql 语句文本,当然也可以是存储过程的名称。

cmd.CommandText = "insert into custom values(@uid,@uname,@udepart,@uage,@uename,@upassword)";

3.使用了Command 对象的 Parameters 属性 输入参数。

cmd.Parameters.AddWithValue("@uid", uid.Text);

cmd.Parameters.AddWithValue("@uname", uname.Text);

cmd.Parameters.AddWithValue("@udepart", udepart.Text);

cmd.Parameters.AddWithValue("@uage", uage.Text);

cmd.Parameters.AddWithValue("@uename", uename.Text);

cmd.Parameters.AddWithValue("@upassword", upassword.Text);

嗯这样一改看起来就很舒服了^_^

修改、删除和增加的套路是差不多的。这里就不贴代码了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用MySQL Connector/NET这个NuGet包来连接MySQL数据库。具体操作可以参考以下步骤: 1. 安装MySQL Connector/NET NuGet包。 2. 在appsettings.json文件中添加连接字符串,格式如下: ``` { "ConnectionStrings": { "DefaultConnection": "Server=<server>;Database=<database>;Uid=<user>;Pwd=<password>;" }, ... } ``` 请将<server>, <database>, <user>, <password>替换为您的MySQL数据库信息。 3. 在程序中注入DbContext,并在需要操作数据的地方使用DbContext来进行增删改查操作。 示例代码: ``` using Microsoft.EntityFrameworkCore; using System.Collections.Generic; using System.Threading.Tasks; public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } public DbSet<User> Users { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); // 创建User表 modelBuilder.Entity<User>().ToTable("User"); } } public class User { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } public class UserRepository { private readonly MyDbContext _dbContext; public UserRepository(MyDbContext dbContext) { _dbContext = dbContext; } public async Task<List<User>> GetAllUsersAsync() { return await _dbContext.Users.ToListAsync(); } public async Task<User> GetUserByIdAsync(int id) { return await _dbContext.Users.FindAsync(id); } public async Task AddUserAsync(User user) { await _dbContext.Users.AddAsync(user); await _dbContext.SaveChangesAsync(); } public async Task UpdateUserAsync(User user) { _dbContext.Update(user); await _dbContext.SaveChangesAsync(); } public async Task DeleteUserAsync(User user) { _dbContext.Remove(user); await _dbContext.SaveChangesAsync(); } } // 在Startup.cs中注入DbContext和Repository public void ConfigureServices(IServiceCollection services) { services.AddDbContext<MyDbContext>(options => options.UseMySQL(Configuration.GetConnectionString("DefaultConnection"))); services.AddScoped<UserRepository>(); } ``` 请注意,如果您要在ASP.NET Core中使用MySQL Connector/NET,请确保您的操作系统中已安装MySQL Connector/NET的依赖项(如libmysql.dll)。 希望这可以帮助您实现ASP.NET Core连接MySQL数据库并进行增删改查操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值