1

我对下面的代码有两个问题,我使用 将Dataset数据库复制到内存。

第一个问题:我想知道为什么我不能使用此代码进行连接:

connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DALLayer.Properties.Settings.AnimalMotelConnectionString"].ConnectionString);

我收到此错误消息:

你调用的对象是空的。

请解释我错过了什么。我在 app.config 中使用名称字符串。现在我的连接是硬编码的,就像下面的代码一样,它可以工作。

第二个问题:当我使用数据集时,我想我只能在我拥有的 sql 命令中读取和执行操作。当我想更改、添加或删除时,我必须使用另一个 sql 命令和一个新的数据集?

 public void Test()
    {
        SqlConnection connection;
        SqlCommand command;
        SqlDataAdapter adapter = new SqlDataAdapter();
        DataSet dataset = new DataSet();

        string connectionsString = null;
        string sql = null;

        connectionsString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\AnimalMotel.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
        sql = "SELECT * From Guests";

        connection = new SqlConnection(connectionsString);

        try
        {
            connection.Open();
            command = new SqlCommand(sql, connection);
            adapter.SelectCommand = command;
            adapter.Fill(dataset);
            adapter.Dispose();
            command.Dispose();
            connection.Close();

            MessageBox.Show(Convert.ToString(dataset.Tables[0].Rows[1].ItemArray[1]), "This is only a test!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }
        catch
        {
            throw;
        } 
    }
4

0 回答 0