ListView绑定数据库,从ListView中向其他窗体传值(右键绑定)
⾸先建⽴封装类
封装数据库连接字符串
封装⼀个空的值,这个空值必须连接数据库中的⼀个列值,然后让这个空值做数据库的条件从⽽查并循环输出⾃⼰数据库中向窗⼝传的值具体⽅法如下:
DBHelper(封装类):
建⽴cs⽂件取名任意
⾥⾯代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class DBHelper
{
public static string conStr ="Data Source=.;Initial Catalog=AirQualityDB;Integrated Security=True";
public static int chuan =0;
}
窗体1(ListView控件):
控件图略
必需要的代码:
注:这⾥的listView1.SelectedItems[0].Text,我是把我需要传的数据库绑定的值放到了listview的最前⾯,这样⽅便写传值代码所以不需要再写⼦项的值,只需要写⽗项的值就可以了
private void修改ToolStripMenuItem_Click(object sender, EventArgs e)
{
DBHelper.chuan = Convert.ToInt32(listView1.SelectedItems[0].Text);//传值
}
窗体2(部分想要传的控件):
控件图略
必要代码:
private void frmMains_Load(object sender, EventArgs e)
{
Bind();
Bindin();
}
这些代码写之前必须先把下⾯的绑定写完,不然会报错
建⽴临时数据库和数据传输介质:
/// <summary>
/// 创建临时数据库
/// </summary>
DataSet ds = new DataSet();
/// <summary>
/// 创建数据库传输
/// </summary>
SqlDataAdapter adapter = null;
下拉框传值代码:
绑定下拉框:
public void Bind()
{
string sql ="select * from 表名 ";
try
{
adapter = new SqlDataAdapter(Str);
adapter.Fill(ds,"临时数据库");
DataRow newRow = ds.Tables["临时数据库"].NewRow();
newRow[0]=-1;
newRow[1]=" ";
listview控件在哪里
ds.Tables["临时数据库"].Rows.InsertAt(newRow,0);
cbojiance.DataSource = ds.Tables["临时数据库"];
cbojiance.DisplayMember ="数据库列名(显⽰的值)";
cbojiance.ValueMember ="数据库列名(隐藏的值)";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
向其他控件循环传值:
public void Bindin()
{
string sql = string.Format("select * from 数据库表 where 条件 and 需要通过的传⽽绑定的空值的列值={0}", DBHelper.chuan(这个是封装类⾥⾯的空值));
SqlDataReader read = null;
SqlConnection conn = new Str);
try
{
conn.Open();
SqlCommand command = new SqlCommand(sql,conn);
read = command.ExecuteReader();
while(read.Read())
{
(下拉框的名字属性(name)→) cbojiance.Text = read["下拉框绑定数据库的值"].ToString();
(⽂本框的名字属性(name)→)textName.Text = read["⽂本框绑定数据库的值"].ToString();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
}
最后喜欢的⼩伙伴别忘了给个赞^^~谢谢哒 ~
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论