C# winfrom datagridview 如何为一列添加向下滚动条 请看清楚再回答!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winfrom datagridview 如何为一列添加向下滚动条 请看清楚再回答!相关的知识,希望对你有一定的参考价值。
我要的是如何将一个列显示数据多的话有垂直的滚动条!
参考技术A DataGridViewComboBoxColumndcombo
=
new
DataGridViewComboBoxColumn();
dcombo.Items.Add("暂存");
dcombo.Items.Add("留库");
dcombo.Items.Add("归还");
dcombo.Name
=
"combo";
//显示的位置列
dcombo.DisplayIndex
=
0;
dcombo.HeaderText
=
"入库方式";
//绑定数据库的值时使用以下属性
//dcombo.DataPropertyName
=
"danwei";
dataGridView1.Columns.Add(dcombo);
//dataGridView1.Columns.Add(dcombo);
你可以进行改动一下就能用了
winfrom_导入Excel文件加载数据到datagridview并将数据保存到数据库
1.效果图:
Excel表:
winfrom界面:
主要先 选择Excel文件--->显示文件路径--->选择是那一个Excel表--->加载显示在下面的datagridview--->导入到数据库保存
2.点击 ‘选择Excel’ 按钮事件:
1 private void btn_excel_Click(object sender, EventArgs e) 2 { 3 try 4 { 5 //获取Excel文件路径和名称 6 OpenFileDialog odXls = new OpenFileDialog(); 7 //指定相应的打开文档的目录 AppDomain.CurrentDomain.BaseDirectory定位到Debug目录,再根据实际情况进行目录调整 8 string folderPath = AppDomain.CurrentDomain.BaseDirectory + @"databackup\\"; 9 odXls.InitialDirectory = folderPath; 10 // 设置文件格式 11 odXls.Filter = "Excel files office2003(*.xls)|*.xls|Excel office2010(*.xlsx)|*.xlsx"; 12 //openFileDialog1.Filter = "图片文件(*.jpg)|*.jpg|(*.JPEG)|*.jpeg|(*.PNG)|*.png"; 13 odXls.FilterIndex = 1; 14 odXls.RestoreDirectory = true; 15 if (odXls.ShowDialog() == DialogResult.OK) 16 { 17 this.txtFilePath.Text = odXls.FileName; 18 this.txtFilePath.ReadOnly = true; 19 20 string sConnString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\\"Excel 12.0;HDR=Yes;\\"", odXls.FileName); 21 if ((System.IO.Path.GetExtension(txtFilePath.Text.Trim())).ToLower() == ".xls") 22 { 23 sConnString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\\"Excel 8.0;HDR=Yes;IMEX=1;\\"", odXls.FileName); 24 } 25 using (OleDbConnection oleDbConn = new OleDbConnection(sConnString)) 26 { 27 oleDbConn.Open(); 28 DataTable dt = oleDbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); 29 //判断是否cmb中已有数据,有则清空 30 if (cmbtablename.Items.Count > 0) 31 { 32 cmbtablename.DataSource = null; 33 cmbtablename.Items.Clear(); 34 } 35 //遍历dt的rows得到所有的TABLE_NAME,并Add到cmb中 36 foreach (DataRow dr in dt.Rows) 37 { 38 cmbtablename.Items.Add((String)dr["TABLE_NAME"]); 39 } 40 if (cmbtablename.Items.Count > 0) 41 { 42 cmbtablename.SelectedIndex = 0; 43 } 44 //加载Excel文件数据按钮 45 this.btnSearch.Enabled = true; 46 } 47 } 48 } 49 catch (Exception ex) 50 { 51 MessageBox.Show(ex.Message); 52 } 53 }
注:可能会报错 ‘未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序’,需要下载AccessDatabaseEngine.exe并安装;
3.点击 ‘加载Excel’ 按钮事件
1 private void btnSearch_Click(object sender, EventArgs e) 2 { 3 if (string.IsNullOrEmpty(txtFilePath.Text)) 4 { 5 MessageBox.Show("请选择Excel!"); 6 } 7 else 8 {//读取相应的表名的Excel文件中数据到当前DataGridview中显示 9 string strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\\"Excel 12.0;HDR=Yes;\\"", txtFilePath.Text.Trim()); 10 if ((System.IO.Path.GetExtension(txtFilePath.Text.Trim())).ToLower() == ".xls" && (System.IO.Path.GetExtension(txtFilePath.Text.Trim())).ToLower() == ".xlsx") 11 { 12 strConn = string.Format("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = {0}; Extended Properties =\\"Excel 8.0;HDR=Yes;IMEX=1;\\"", txtFilePath.Text.Trim()); 13 } 14 string sTableName = cmbtablename.Text.Trim(); 15 try 16 { 17 OleDbDataAdapter da = new OleDbDataAdapter("select *from [" + sTableName + "]", strConn); 18 DataSet oldDS = new DataSet(); 19 da.Fill(oldDS); 20 this.dgv_students.DataSource = oldDS.Tables[0]; 21 } 22 catch (Exception ex) 23 { 24 MessageBox.Show(ex.Message); 25 } 26 } 27 }
4.点击‘确定导入’按钮事件
1 private void btnSub_Click(object sender, EventArgs e) 2 { 3 if (txtFilePath.Text.Trim() != "" && cmbtablename.Text.Trim() != "") 4 { 5 int nums = dgv_students.Rows.Count; 6 if (nums < 0) return; 7 8 string studentID, name, sex, phone, idNumber, address, deposit, tuitionPayable, seatNumber; 9 for (int i = 0; i < dgv_students.Rows.Count; i++) 10 { 11 studentID = this.dgv_students.Rows[i].Cells[0].Value.ToString(); 12 name = this.dgv_students.Rows[i].Cells[1].Value.ToString(); 13 sex = this.dgv_students.Rows[i].Cells[2].Value.ToString(); 14 phone = this.dgv_students.Rows[i].Cells[3].Value.ToString(); 15 idNumber = this.dgv_students.Rows[i].Cells[4].Value.ToString(); 16 address = this.dgv_students.Rows[i].Cells[5].Value.ToString(); 17 deposit = this.dgv_students.Rows[i].Cells[6].Value.ToString(); 18 tuitionPayable = this.dgv_students.Rows[i].Cells[7].Value.ToString(); 19 seatNumber = this.dgv_students.Rows[i].Cells[8].Value.ToString(); 20 int result = dal.AddtoImport(studentID, name, sex, phone, idNumber, address, deposit, tuitionPayable, seatNumber); 21 if (result == 0) 22 { 23 MessageBox.Show("数据导入成功!\\n"); 24 } 25 else 26 { 27 MessageBox.Show("数据导入失败! Error:" + result + "\\n"); 28 } 29 } 30 } 31 else 32 { 33 MessageBox.Show("请加载表格!"); 34 } 35 }
以上是关于C# winfrom datagridview 如何为一列添加向下滚动条 请看清楚再回答!的主要内容,如果未能解决你的问题,请参考以下文章
C# winfrom datagridview 怎样实现 如图效果 程序动态添加数据呢?
C# Winfrom 获取DataGridview自动生成序号的值
c#winfrom应用程序中怎么向DataGridView控件添加带图片的按钮列