WPF判断数据库是否连接成功

        private void Button_Connection_Click(object sender, RoutedEventArgs e)
        {
            string connectionString = @"User Id="+ YHM.Text +";Password="+ MM.Password +";Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST= "+DZ.Text  +")(PORT=1521))(CONNECT_DATA=(SID="+ BKJ.Text +")));";
            {
                OracleConnection connection = new OracleConnection(connectionString);
                try
                {
                    if (connection.State != ConnectionState.Open)
                    {
                        connection.Open();
                    }
                    MessageBox.Show("数据库连接成功!", "提示");
                }
                catch(Exception ee)
                {
                    MessageBox.Show("数据库连接失败!\n" + ee.Message.ToString(), "提示");
                }
            }
        }

### 回答1: 我很高兴为您提供帮助。下面是使用MVVM思想、WPF来实现Oracle数据库CRUD的代码: public class OracleViewModel { private OracleDataContext _db; public OracleViewModel() { _db = new OracleDataContext(); } public void Create(object obj) { _db.Create(obj); } public void Update(object obj) { _db.Update(obj); } public void Delete(object obj) { _db.Delete(obj); } public IEnumerable<object> Select() { return _db.Select(); } } ### 回答2: 在使用WPF实现Oracle数据库的增删改查时,可以使用MVVM(Model-View-ViewModel)架构思想来设计代码。下面是一个简单的示例代码,帮助你了解如何使用MVVM思想完成这个功能。 Model: ```C# // 数据库连接及操作相关的代码可以在 Model 中实现 public class OracleDatabaseModel { // 建立数据库连接并执行增删改查操作 public void ExecuteQuery(string query) { // 在这里实现数据库连接及相关操作 } } ``` ViewModel: ```C# public class MainViewModel : INotifyPropertyChanged { private OracleDatabaseModel _model; public MainViewModel() { _model = new OracleDatabaseModel(); } private string _query; public string Query { get { return _query; } set { _query = value; OnPropertyChanged(nameof(Query)); } } private RelayCommand _executeCommand; public RelayCommand ExecuteCommand { get { if (_executeCommand == null) { _executeCommand = new RelayCommand( () => { _model.ExecuteQuery(Query); // 执行查询后的相关操作,比如更新界面或显示结果 }, () => { // 在这里可以添加一些判断逻辑,比如查询内容是否为空,是否有权限等 return !string.IsNullOrEmpty(Query); }); } return _executeCommand; } } #region INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion } ``` View: ```XAML <!-- 在视图中绑定 ViewModel 的属性和命令 --> <Window.DataContext> <local:MainViewModel /> </Window.DataContext> <Grid> <TextBox Text="{Binding Query}" /> <Button Content="执行" Command="{Binding ExecuteCommand}" /> <!-- 其他 UI 元素 --> </Grid> ``` 通过上述示例,你可以在 WPF 中使用 MVVM 思想来处理与 Oracle 数据库的增删改查操作。注意,在实际应用中,你需要根据需要进一步完善和修改上述代码。 ### 回答3: 使用MVVM思想实现WPF与Oracle数据库的增删改查操作代码如下: 首先,在ViewModel层中创建一个用于和数据库交互的类,例如命名为OracleDataService。该类中包含以下几个方法: 1. 查询数据操作: ```C# public DataTable GetOracleData() { // 连接数据库 using (OracleConnection connection = new OracleConnection(connectionString)) { // 执行查询语句 string sql = "SELECT * FROM TableName"; using (OracleCommand command = new OracleCommand(sql, connection)) { connection.Open(); using (OracleDataAdapter adapter = new OracleDataAdapter(command)) { DataTable dataTable = new DataTable(); adapter.Fill(dataTable); return dataTable; } } } } ``` 2. 插入数据操作: ```C# public void InsertOracleData(DataTable dataTable) { using (OracleConnection connection = new OracleConnection(connectionString)) { // 执行插入语句 string sql = "INSERT INTO TableName (Column1, Column2) VALUES (:val1, :val2)"; using (OracleCommand command = new OracleCommand(sql, connection)) { connection.Open(); foreach (DataRow row in dataTable.Rows) { command.Parameters.Clear(); // 清除之前的参数 command.Parameters.AddWithValue(":val1", row["Column1"]); command.Parameters.AddWithValue(":val2", row["Column2"]); command.ExecuteNonQuery(); } } } } ``` 3. 更新数据操作: ```C# public void UpdateOracleData(DataTable dataTable) { using (OracleConnection connection = new OracleConnection(connectionString)) { // 执行更新语句 string sql = "UPDATE TableName SET Column1 = :val1, Column2 = :val2 WHERE ID = :id"; using (OracleCommand command = new OracleCommand(sql, connection)) { connection.Open(); foreach (DataRow row in dataTable.Rows) { command.Parameters.Clear(); // 清除之前的参数 command.Parameters.AddWithValue(":val1", row["Column1"]); command.Parameters.AddWithValue(":val2", row["Column2"]); command.Parameters.AddWithValue(":id", row["ID"]); command.ExecuteNonQuery(); } } } } ``` 4. 删除数据操作: ```C# public void DeleteOracleData(DataTable dataTable) { using (OracleConnection connection = new OracleConnection(connectionString)) { // 执行删除语句 string sql = "DELETE FROM TableName WHERE ID = :id"; using (OracleCommand command = new OracleCommand(sql, connection)) { connection.Open(); foreach (DataRow row in dataTable.Rows) { command.Parameters.Clear(); // 清除之前的参数 command.Parameters.AddWithValue(":id", row["ID"]); command.ExecuteNonQuery(); } } } } ``` 在WPF的View层中,可以使用DataGrid控件来展示数据库的数据,并绑定ViewModel中对应的属性,以实现数据的展示和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值