C# 使用C将新数据行输入SQL Server Express#
我很确定我在这里是愚蠢的,但是哦,好吧 我的代码是:C# 使用C将新数据行输入SQL Server Express#,c#,sql,visual-studio-2010,C#,Sql,Visual Studio 2010,我很确定我在这里是愚蠢的,但是哦,好吧 我的代码是: private void btnInsert_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\LiftLog.mdf;Integrated Security=True;User Instance=True"
private void btnInsert_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\LiftLog.mdf;Integrated Security=True;User Instance=True");
conn.Open();
SqlCommand cmdInsert = conn.CreateCommand();
cmdInsert.CommandText = "INSERT INTO tblLog (Date, Time, Floor) VALUES (1011, 0011, 3)";
cmdInsert.ExecuteNonQuery();
}
它正在连接到表,因为如果我没有将任何数据放入NOTNULL字段,它会抱怨。但是,当我单击按钮时,表不会更新
为什么?
这有助于检索数据:
System.Data.SqlClient.SqlConnection con;
System.Data.SqlClient.SqlDataAdapter da;
DataSet ds1;
// Connects to database.
private void Form1_Load(object sender, EventArgs e)
{
con = new System.Data.SqlClient.SqlConnection();
ds1 = new DataSet();
con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\LiftLog.mdf;Integrated Security=True;User Instance=True";
con.Open();
string sql = "SELECT * From tblLog";
da = new System.Data.SqlClient.SqlDataAdapter(sql, con);
da.Fill(ds1, "LogOutput");
NavigateRecords();
con.Close();
}
由于SSMS对我不起作用,是否可以通过某种方式修改它以插入
此外,我知道如何清理输入等,我将其全部剥离,以尝试找出问题所在。整个用户实例和AttachDbFileName=方法存在缺陷-最多!Visual Studio将围绕.mdf
文件(在Visual Studio中运行应用程序时,将其复制到项目的输出目录)进行复制,并且很可能,您的插入
工作正常-但您最后看到的是错误的.mdf文件
如果您想继续使用这种方法,请尝试在myConnection.Close()
调用上放置一个断点,然后使用SQL Server Mgmt Studio Express检查.mdf
文件(在项目的输出目录中)-我几乎可以肯定您的数据在那里
我认为真正的解决办法是
LiftLog
)Data Source=.\\SQLEXPRESS;Database=LiftLog;Integrated Security=True
其他一切都和以前一样cmdInsert.CommandText = "INSERT INTO tblLog (Date, Time, Floor)
VALUES (1011, 0011, 3)";
你应该使用
cmdInsert.CommandText = "INSERT INTO tblLog (Date, Time, Floor)
VALUES (@Date, @Time, @Floor)";
然后在
SqlCommand
对象上定义这些参数(@Date、@Time、@Floor
),并以这种方式填写它们的值。还有他的插入tblLog(Date,Time,Floor)值(10110011,3)
看起来插入的值不正确(如果前两列是DATETIME,Date或Time数据类型)@Kaf:这可能是一个额外的问题-更不用说应该始终使用参数化查询,而不是直接指定值…@marc_s Welp,SSMS安装失败。在项目的文件中,有一个“LiftLog.mdf”数据库,我可以直接链接到它吗?此外,我还更新了原始帖子中有关数据集读取命令的信息,该命令运行良好。@杰克:您应该能够在Visual Studio 2010服务器资源管理器中打开该.mdf
,并查看其中的内容……是的。是的。这是我一直在读取+修改的数据,但显然没有更新。