WPF数据绑定DataGrid
来源:互联网 发布:软件生存周期 活动 编辑:程序博客网 时间:2024/05/04 06:21
1、sqlite3辅助类
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.SQLite;using System.Data;using System.Data.Common;using System.Windows.Forms;//SQLite辅助类namespace Utils{ public class SqlLiteHelper { public static string ConnSqlLiteDbPath = string.Empty; public static string ConnString { get { return string.Format(@"Data Source={0}", ConnSqlLiteDbPath); } } // 取datatable public static DataTable GetDataTable(out string sError,string sSQL) { DataTable dt = null; sError = string.Empty; try { SQLiteConnection conn = new SQLiteConnection(ConnString); conn.Open(); SQLiteCommand cmd = new SQLiteCommand(); cmd.CommandText = sSQL; cmd.Connection = conn; SQLiteDataAdapter dao = new SQLiteDataAdapter(cmd); dt = new DataTable(); dao.Fill(dt); } catch (Exception ex) { sError = ex.Message; MessageBox.Show(sError, "数据库连接异常"); } return dt; } // 取某个单一的元素 public static object GetSingle(out string sError, string sSQL) { DataTable dt = GetDataTable(out sError, sSQL); if (dt != null && dt.Rows.Count > 0) { return dt.Rows[0][0]; } return null; } // 取最大的ID public static Int32 GetMaxID(out string sError, string sKeyField,string sTableName) { DataTable dt = GetDataTable(out sError, "select ifnull(max([" + sKeyField + "]),0) as MaxID from [" + sTableName + "]"); if (dt != null && dt.Rows.Count > 0) { return Convert.ToInt32(dt.Rows[0][0].ToString()); } return 0; } // 执行insert,update,delete 动作,也可以使用事务 public static bool UpdateData(out string sError, string sSQL,bool bUseTransaction=false) { int iResult = 0; sError = string.Empty; if (!bUseTransaction) { try { SQLiteConnection conn = new SQLiteConnection(ConnString); conn.Open(); SQLiteCommand comm = new SQLiteCommand(conn); comm.CommandText = sSQL; iResult = comm.ExecuteNonQuery(); } catch (Exception ex) { sError = ex.Message; iResult = -1; } } else // 使用事务 { DbTransaction trans =null; try { SQLiteConnection conn = new SQLiteConnection(ConnString); conn.Open(); trans = conn.BeginTransaction(); SQLiteCommand comm = new SQLiteCommand(conn); comm.CommandText = sSQL; iResult = comm.ExecuteNonQuery(); trans.Commit(); } catch (Exception ex) { sError = ex.Message; iResult = -1; trans.Rollback(); } } return iResult >0; } }}
数据源sqlite3数据库Data目录,添加文件Store.db数据库;生成操作:内容;是否输出到目录:总是
主窗口添加DataGrid控件
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;using Utils;using System.IO;using System.Data;namespace WpfApplication1{ /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); InitDB(); } private void InitDB() { string sql = "select * from Products"; DataTable dt = GetDataTable(@"Data\Store.db", sql); this.dataGrid1.ItemsSource = dt.DefaultView; } private void button1_Click(object sender, RoutedEventArgs e) { } private DataTable GetDataTable(string sqldbpath, string sql) { SqlLiteHelper.ConnSqlLiteDbPath = sqldbpath; string sError = ""; return SqlLiteHelper.GetDataTable(out sError, sql); } }}
XAML代码
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="34,21,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" /> <DataGrid AutoGenerateColumns="False" Height="210" HorizontalAlignment="Left" Margin="0,89,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="437" Grid.Column="5" Grid.Row="5"> <DataGrid.Columns > <DataGridTextColumn Header="产品ID" Binding="{Binding Path=ProductID}"/> <DataGridTextColumn Header="分类ID" Binding="{Binding Path=CategoryID}"/> <DataGridTextColumn Header="ModelName" Binding="{Binding Path=ModelName}" /> <DataGridTextColumn Header="ModelNumber" Binding="{Binding Path=ModelNumber}"></DataGridTextColumn> <DataGridTextColumn Header="ProductImage" Binding="{Binding Path=ProductImage}"/> <DataGridTextColumn Header="单价" Binding="{Binding Path=UnitCost}"/> <DataGridTextColumn Header="描述" Binding="{Binding Path=Description}" /> </DataGrid.Columns> </DataGrid> </Grid></Window>
结果:
0 0
- wpf datagrid 数据绑定
- WPF数据绑定DataGrid
- wpf dataGrid 简单数据绑定
- wpf的datagrid绑定数据
- wpf datagrid中的 DataGridComboBoxColumn数据绑定
- 绑定数据到wpf中的datagrid中
- WPF DataGrid 绑定Table
- WPF-DataGrid 绑定数据源
- WPF DataGrid 绑定 DataTable
- WPF DataGrid 绑定DataSet数据 自动生成行号
- WPF 中DataGrid控件绑定数据的一个例子
- wpf datagrid绑定数据中每行都有删除按钮
- WPF DataGrid 绑定数据及时更新的处理
- C# WPF中DataGrid的数据绑定(Binding)
- WPF中DataGrid数据绑定(泛型和datatable)
- WPF中DataGrid使用自定义列绑定数据
- WPF使用MVVM完成DataGrid数据绑定带全选
- WPF DataGrid 绑定数据库数据表
- git sheet好用哦!
- Java中的空值判断
- 排序--冒泡法
- VC问题总结
- Linux应用程序开发笔记->文件编程之系统调用方式相关函数
- WPF数据绑定DataGrid
- 发的韩国国际会计的回归附加费
- java多线程-线程间通信_代码优化
- 排序--选择法
- java多线程-线程间通信_生产者消费者
- UVA10129
- 进程的三个基本状态切换
- 第六天-面向对象(静态,帮助文档制作)
- java多线程-停止线程interrupt