SQL 服务器快速,无法在 C# 中读取或写入

本文关键字:读取 服务器 SQL | 更新日期: 2023-09-27 18:34:00

我编写了一段代码,可以自动添加和读取我的SQL Server 2012 Express表"登录名"中的信息。但它不起作用,这是代码:

private void Form1_Load(object sender, EventArgs e)
    {
        SqlConnection myConnection = new SqlConnection("user id=myComputer;" + "server=MYCOMPUTER-PC''SQLEXPRESS;" +
                "Trusted_Connection=yes;" + "database=loginTest; " + "connection timeout=5");
        try
        {
            myConnection.Open();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
        SqlCommand myCommand = new SqlCommand("INSERT INTO dbo.Logins Values ('John','Password','Admin')", myConnection);
        try
        {
            SqlDataReader myReader = null;
            SqlCommand myCommand1 = new SqlCommand("select * from Logins",
                                                     myConnection);
            myReader = myCommand1.ExecuteReader();
            while (myReader.Read())
            {
                MessageBox.Show(myReader["Column1"].ToString());
                MessageBox.Show(myReader["Column2"].ToString());
            }
        }
        catch (Exception ex1)
        {
            MessageBox.Show(ex1.ToString());
        }
    }

我已经调试了程序,一切似乎都很好,它跳过了:

        {
            MessageBox.Show(myReader["Column1"].ToString());
            MessageBox.Show(myReader["Column2"].ToString());
        }

出于某种原因,它没有写入我告诉它的值。

谁能告诉我为什么?我是SQL的初学者,所以请放轻松:)

PS 它不会发出任何错误代码或异常

SQL 服务器快速,无法在 C# 中读取或写入

Logins表没有任何记录,如果您的意思是要先尝试插入一些记录进行测试,那么正是这一行导致了您的问题:

SqlCommand myCommand = new SqlCommand("INSERT INTO dbo.Logins Values ('John','Password','Admin')", myConnection);
myCommand.ExecuteNonQuery();//Do this to insert something into your Logins first.

它跳过 [...]

大概这是因为没有要读取的数据,所以myReader.Read()只返回false

它不会写我告诉它的值。

你实际上并没有告诉它写任何东西。您创建了一个用于插入数据的SqlCommand,但从不执行它。您需要使用 myCommand.ExecuteNonQuery .您还应该对命令、连接和读取器使用 using 语句,以确保它们正确关闭。