我创建了一个简单的程序,它接受输入然后存储数据库中输入的数据。 我在vs 2013中使用了本地基于ms sql服务的数据库。该程序运行完美并保存 数据库中输入的数据。问题是每当我向表格数据显示我最近的数据时 输入已经消失了。但是当我修改连接并设置数据库文件位置并选择数据库文件时 " \ Visual Studio 2013 \ Projects \ locald \ locald \ bin \ Debug \ dbs.mdf"当我输入新数据时,数据被保存并且 我终于可以在数据库中看到Inputted中的数据了。为什么数据仅在我存储时存储 修改连接并在" \ bin \ Debug"中设置位置夹。数据库文件的默认位置 在" \ Visual Studio 2013 \ Projects \ locald \ locald \ dbs.mdf"这是数据库的defualt目录 不存储我输入的数据。另外,我设置了我的数据库"复制到输出目录" 财产到"复制如果更新"因为它的默认值是" Copy Always"只保存我输入的最新数据 并将第二个覆盖到我输入的最新输入。如何解决此问题并使我的数据库存储数据 永久即使连接只是在数据库的默认位置文件夹?有什么东西吗? 我想念?请帮助谢谢......
以下是我在我的计划中使用的代码:
我的保存按钮的代码:
private void button1_Click(object sender, EventArgs e)
{
string f = textBox1.Text;
int a = int.Parse(textBox2.Text);
SqlConnection conn = locald.DB.GetSqlConnection();
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@fname", SqlDbType.VarChar).Value=f;
cmd.Parameters.Add("@age", SqlDbType.Int).Value=a;
cmd.CommandText = @"savetotblinfo";
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Data Saved", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
textBox1.Clear();
textBox2.Clear();
conn.Close();
}
catch(SqlException err)
{
MessageBox.Show(err.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
我为数据库连接创建的类:
public class DB
{
public static string ConnectionString
{
get
{
string connStr = ConfigurationManager.ConnectionStrings["locald.Properties.Settings.localdConnectionString"].ToString();
SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder(connStr);
sb.ApplicationName = ApplicationName ?? sb.ApplicationName;
sb.ConnectTimeout = (ConnectionTimeout > 0) ? ConnectionTimeout : sb.ConnectTimeout;
return sb.ToString();
}
}
public static string ApplicationName { get; set; }
public static int ConnectionTimeout { get; set; }
public static SqlConnection GetSqlConnection()
{
SqlConnection cnn = new SqlConnection(ConnectionString);
cnn.Open();
return cnn;
}
}
我使用的存储过程:
CREATE PROCEDURE dbo.savetotblinfo
@fname varchar(300),
@age int
AS
SET NOCOUNT ON
INSERT INTO tblinfo
VALUES (@fname,@age)
RETURN 0
这就是我在设置选项中的项目属性中所做的: