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 它不会发出任何错误代码或异常
您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
语句,以确保它们正确关闭。