在Visual Studio(2013)中,我在项目中添加了基于服务的数据库(Database1.mdf)。我在其中添加了一个表,并通过Show Data Table添加了两行。从数据库读取数据可根据需要工作。但是增加数据库的价值存在问题。如果我在程序运行时向数据库添加值,然后按“读取数据”就可以了,数据正在读取。但是,如果我在程序仍在运行时转到“显示数据表”并按下“更新”按钮,则会收到错误消息:“此数据库无法导入。它是不受支持的SQL Server版本或不支持的数据库兼容性”。
如果我按下“SQL Server对象资源管理器”中的“更新”按钮,然后转到“显示数据表”并按“更新”按钮,则数据会更新,但不会添加数据。此外,在程序完成后,没有添加数据。
为什么?
我尝试将“复制到输出目录”属性从“始终复制”更改为“不复制”或“如果更新则复制”。但它没有帮助我。请帮帮我
阅读数据:
string strConnectionString = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=|DataDirectory|\\Database.mdf;Integrated Security=True";
using (SqlConnection con = new SqlConnection(strConnectionString))
{
try
{
SqlCommand command = new SqlCommand("SELECT [Login] FROM [UsersTable];", con);
con.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
label1.Text = "Last value: " + reader.GetString(0);
}
}
}
catch (SqlException ex)
{
}
添加数据:
string strConnectionString = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=|DataDirectory|\\Database.mdf;Integrated Security=True";
using (SqlConnection con2 = new SqlConnection(strConnectionString))
{
using (SqlCommand command2 = new SqlCommand())
{
command2.Connection = con2;
command2.CommandType = CommandType.Text;
command2.CommandText = "INSERT INTO [UsersTable] ([Login], [Password]) VALUES (@Login, @Password)";
command2.Parameters.AddWithValue("@Login", textLogin.Text);
command2.Parameters.AddWithValue("@Password", textPassword.Text);
try
{
con2.Open();
command2.ExecuteNonQuery();
}
catch (SqlException)
{
// error here
}
finally
{
con2.Close();
}
}
}
答案 0 :(得分:0)
<强>更新强>
也许这个例子不足以让你
。private void SubmitNote(string message)
{
// Ensure parameter isn't null.
if(string.IsNullOrEmpty(message))
return;
// Our Insert Query:
string insert = @"INSERT INTO [Notes] ([Username], [Date], [Message])
VALUES (@Username, @Date, @Message);";
// Define our Connection & Command:
using(SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString))
using(SqlCommand command = new SqlCommand(insert, connection))
{
// Open Connection
connection.Open();
// Define our Command (AddWithValue / Add Approach)
command.Parameters.Add("@Username", SqlDbType.VarChar, 50).Values = User.Identity.Name;
command.Parameters.AddWithValue("@Date", DateTime.Now);
command.Parameters.Add("@Message", SqlDbType.VarChar).Value = message;
// Execute Query:
command.ExecuteNonQuery();
}
}
因此,无论何时我想向数据库插入消息,我只需致电:
SubmitNote("What is love, baby don't hurt me.");
假设参数和连接有效,那将执行没有任何问题。您可以编写一个异常帮助程序,但这超出了您的问题范围。您可能遇到的问题之一是:
根据您提到的问题,值为 Null ,这意味着它不包含有效值。例如,如果你这样做:
String message = String.Empty;
SubmitNote(message);
那会失败,因为消息没有值。希望这会有所帮助。