如何在C#程序中包含这些代码

本文关键字:包含这 代码 程序 | 更新日期: 2023-09-27 18:22:49

我遇到了数据库未打开的问题,因为它显然已经打开了。

无法将文件"j:…''KAELC_DB.mdf"复制到"bin''Debug''CALC_DB.mdf"。进程无法访问文件"j:。。。''KAELC_DB.mdf',因为它是被另一个过程使用。

无法将文件"j:…''KAELC_DB_log.ldf"复制到"bin''Debug''KAELC_DB_log.ldf"。进程无法访问该文件’j:。。。''KAELC_DB_log.ldf',因为它正被另一个进程使用。

我在StackExchange上找到了一个旧问题的答案,链接到这里https://stackoverflow.com/a/3998383,由"Justin"编写,它试图解决这个问题(我在其他地方也读到"使用"是C#中最有效的编程方法之一),但我如何在代码中使用它?

我创建了一个小项目,它只允许我按下一个按钮来处理SQL语句,但我对"Justin"所指的"使用连接"的含义感到困惑。。。如何将SQL语句放入此代码中?!?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace MySqlTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //Open SQL File
            using (SqlConnection conn = SqlHelper.GetConn())
            {
                // Use the connection <<< How ?!?!?
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            //Insert Record Into  SQL File
        }
        private void button3_Click(object sender, EventArgs e)
        {
            //Read Record From SQL File
        }
        private void button4_Click(object sender, EventArgs e)
        {
            //Read All Records From SQL File
        }
        private void button5_Click(object sender, EventArgs e)
        {
            //Delete Record From DQL File
        }
        private void button6_Click(object sender, EventArgs e)
        {
            //Close SQL File
        }
        private void button7_Click(object sender, EventArgs e)
        {
            //Quit
            this.Close();
        }
        class SqlHelper
        {
            public static SqlConnection GetConn()
            {
                SqlConnection returnValue = new SqlConnection(@"Data Source=MEDESKTOP;AttachDbFilename=|DataDirectory|'SqlTestDB.mdf;Initial Catalog=MySqlDB;Integrated Security=True");
                returnValue.Open();
                return returnValue;
            }
        }
    }
}

如何在C#程序中包含这些代码

如果只想运行SQL命令,请使用SQLCommand对象。(此处为MSDN文档)

这是文章中的示例代码。。。

private static void ReadOrderData(string connectionString)
{
    string queryString = 
        "SELECT OrderID, CustomerID FROM dbo.Orders;";
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(
            queryString, connection);
        connection.Open();
        SqlDataReader reader = command.ExecuteReader();
        try
        {
            while (reader.Read())
            {
                Console.WriteLine(String.Format("{0}, {1}",
                    reader[0], reader[1]));
            }
        }
        finally
        {
            // Always call Close when done reading.
            reader.Close();
        }
    }
}

需要注意的事项:

  1. SqlConnection对象与Using块一起使用
  2. 使用SqlCommand对象
  3. 使用SqlDataReader对象
  4. 显式关闭SqlConnection