C# SQL server express,无法在C中读取或写入
我编写了一段代码,可以自动添加和读取SQL Server 2012 Express表中的信息,即登录。但它不起作用,下面是代码:C# SQL server express,无法在C中读取或写入,c#,sql,sql-server,winforms,C#,Sql,Sql Server,Winforms,我编写了一段代码,可以自动添加和读取SQL Server 2012 Express表中的信息,即登录。但它不起作用,下面是代码: private void Form1_Load(object sender, EventArgs e) { SqlConnection myConnection = new SqlConnection("user id=myComputer;" + "server=MYCOMPUTER-PC\\SQLEXPRESS;" +
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它不会发出任何错误代码或异常
它跳过[…]
这大概是因为没有数据可读取,所以myReader.read只返回false
它没有写我告诉它的值
你并没有让它写任何东西。您创建了一个SqlCommand来插入数据,但从未执行它。您需要使用myCommand.ExecuteOnQuery。您还应该对命令、连接和读取器使用using语句,以确保它们正确关闭
它跳过[…]
这大概是因为没有数据可读取,所以myReader.read只返回false
它没有写我告诉它的值
你并没有让它写任何东西。您创建了一个SqlCommand来插入数据,但从未执行它。您需要使用myCommand.ExecuteOnQuery。您还应该对命令、连接和读卡器使用using语句,以确保它们正确关闭。您登录的表没有任何记录,如果您想尝试先插入一些记录进行测试,则是这一行导致了您的问题:
SqlCommand myCommand = new SqlCommand("INSERT INTO dbo.Logins Values ('John','Password','Admin')", myConnection);
myCommand.ExecuteNonQuery();//Do this to insert something into your Logins first.
您登录的表没有任何记录,如果您的意思是要先尝试插入一些记录进行测试,则是这一行导致了您的问题:
SqlCommand myCommand = new SqlCommand("INSERT INTO dbo.Logins Values ('John','Password','Admin')", myConnection);
myCommand.ExecuteNonQuery();//Do this to insert something into your Logins first.
您从未使用过INSERT commandofftopic提示:尽量不要用这么多的try-catch块污染代码。您从未使用过INSERT commandofftopic提示:尽量不要用这么多的try-catch块污染代码。谢谢!那么为什么需要这样做呢?@user2827904调用ExecuteNonQuery将正式对您的表运行查询。您应该在ExecuteOnQuery上搜索更多信息。当然,正如我所说,如果您的表有一些记录,那么您的代码可以工作,但它不能。这样插入只是为了确保有一些记录用于测试下一个SELECT查询,通常我们不会先插入然后再选择。谢谢!那么为什么需要这样做呢?@user2827904调用ExecuteNonQuery将正式对您的表运行查询。您应该在ExecuteOnQuery上搜索更多信息。当然,正如我所说,如果您的表有一些记录,那么您的代码可以工作,但它不能。插入这种方法只是为了确保有一些记录用于测试下一个SELECT查询,通常我们不会先插入,然后再选择