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(); })); } }}主要記錄自己成長,如有雷同請聯系我~~
新聞熱點
疑難解答