using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace MyFirstBlogsContent{ //新建一个UserInfo类 用于转换类型 class UserInfo { public int UserId { get; set; } public string UserName { get; set; } public string UserPwd { get; set; } public int Age { get; set; } }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.SqlClient;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace MyFirstBlogsContent{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } //连接字符串 PRivate string ConnStr { get; set; } private void Form1_Load(object sender, EventArgs e) { LoadUserInfo(); } #region 加载数据 private void LoadUserInfo() { //得到链接字符串 ConnStr = "server = .;uid = sa;pwd = 1316123;database = MyFirstDb"; //sql脚本 string sqlStr = "select userId, userName, userPwd,Age from UserInfo"; using (SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, ConnStr)) { DataTable dt = new DataTable(); //把获取到的数据存入dt数据表中 adapter.Fill(dt); //由于dt是弱类型 所以将它转换成强类型 List<UserInfo> userList = new List<UserInfo>(); //遍历每一行数据 foreach (DataRow dataRow in dt.Rows) { UserInfo userInfo = new UserInfo(); userInfo.UserId = int.Parse(dataRow["userId"].ToString()); userInfo.Age = int.Parse(dataRow["Age"].ToString()); userInfo.UserName = dataRow["userName"].ToString(); userInfo.UserPwd = dataRow["userPwd"].ToString(); userList.Add(userInfo); } //把数据展示在DataGridView表格中 this.dgvUserInfo.DataSource = userList; } } #endregion private void dgvUserInfo_CellEndEdit(object sender, DataGridViewCellEventArgs e) { //获取选中行的索引 int numHang = this.dgvUserInfo.CurrentRow.Index; //获取选中行 中 列的索引 int numLie = this.dgvUserInfo.CurrentCell.ColumnIndex; //获取选中列的Name string LieName = this.dgvUserInfo.Columns[numLie].Name; //获得指定行列修改过后值 string strInfo = this.dgvUserInfo.Rows[numHang].Cells[numLie].Value.ToString(); //获得修改行的主键 int userId = int.Parse(this.dgvUserInfo.Rows[numHang].Cells["userId"].Value.ToString()); //sql 脚本 string sqlStr = string.Format("update UserInfo set {0} = {1} where userId = @userId",LieName,"@LieName"); using (SqlConnection conn = new SqlConnection(ConnStr)) { using (SqlCommand cmd = conn.CreateCommand()) { //打开数据连接 conn.Open(); cmd.CommandText = sqlStr; //赋值 cmd.Parameters.AddWithValue("@LieName", strInfo); cmd.Parameters.AddWithValue("@userId", userId); int num = cmd.ExecuteNonQuery(); MessageBox.Show("修改成功"); } } //这里我还无法理解,如果直接调用LoadUserInfo()会报异常 在网上找的这个方法 可我现在还无法理解~ this.BeginInvoke(new MethodInvoker(() => { LoadUserInfo(); })); } }}主要记录自己成长,如有雷同请联系我~~
新闻热点
疑难解答