在c#中,INSERT INTO, UPDATE命令不能向SQL Server数据库中添加数据
本文关键字:Server SQL 数据库 添加 数据 命令 INSERT INTO UPDATE 不能 | 更新日期: 2023-09-27 18:11:37
非常抱歉我的问题。我知道有上千个和我一样的问题。然而,通过阅读以前的帖子,我仍然找不到任何解决我的问题的方法。
当我运行我的代码时,它不会抛出任何异常,它运行得很好,当使用INSERT INTO
命令时仍然不会向我的数据库添加任何数据,也不会在使用UPDATE
命令时更改数据。
另一方面,如果我用SELECT-FROM-WHERE
查询替换try部分中的代码,并使用SqlDataReader
读取数据,则它可以完美地工作。所以我认为连接本身没有问题。
下面是我的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace adatbázis_gyakorlás_s_sharp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string kapcslink;
kapcslink = adatbázis_gyakorlás_s_sharp.Properties.Settings.Default.kapcsolo;
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(kapcslink);
con.Open();
try
{
string nev;
int irsz;
string telepules;
nev = "Joseph";
string lekerdezes = "INSERT INTO proba(nev) VALUES (@nev);";
System.Data.SqlClient.SqlCommand parancs = new System.Data.SqlClient.SqlCommand();
parancs.CommandText = lekerdezes;
parancs.CommandType = CommandType.Text;
parancs.Connection = con;
parancs.Parameters.Add("@nev", SqlDbType.VarChar).Value="Joseph";
parancs.ExecuteNonQuery();
}
catch(Exception err)
{
MessageBox.Show(err.Message);
}
con.Close();
}
}
}
有什么建议吗?
整个User Instance和AttachDbFileName=方法是有缺陷的-充其量!当在Visual Studio中运行应用程序时,它将复制.mdf
文件(从你的App_Data
目录到输出目录-通常是.'bin'debug
-你的应用程序运行的地方)和最有可能,你的INSERT
工作得很好-但你只是在看错误的。mdf文件在最后!
如果你想坚持这种方法,然后尝试在myConnection.Close()
调用上设置一个断点-然后用SQL Server Mgmt Studio Express检查.mdf
文件-我几乎可以肯定你的数据在那里。
安装SQL Server Express(你已经这样做了)
install SQL Server Management Studio Express
在SSMS Express中创建数据库,给它一个逻辑名称(例如
adatok
)使用它的逻辑数据库名(在服务器上创建时给出)连接到它,不要乱搞物理数据库文件和用户实例。在这种情况下,您的连接字符串类似于:
Data Source=.''SQLEXPRESS;Database=adatok;Integrated Security=True
和其他的都是和以前完全一样的
也可参阅Aaron Bertrand的优秀博客文章《坏习惯:使用AttachDbFileName获取更多背景信息》
好了,非常感谢大家!问题在于"复制到输出目录"设置。我搜索了bin文件夹,我发现我的。mdf文件的副本更新了!LOL
我将设置更改为"Copy if newer",所以它像我想的那样工作-除了bin目录中的文件每次都会更改,而不是原始文件夹中的文件。但即使在下一次运行中,这些变化仍然存在。我认为这是可以接受的……
虽然设置'不复制'不适合我。在构建项目时,我得到一个"尝试为文件c:' users ' joyce 'documents'visual studio 2013'Projects'adatbázis gyakorlás s-sharp'adatbázis gyakorlás s-sharp'bin'Debug'adatok附加一个自动命名的数据库"。mdf失败了。存在同名数据库、无法打开指定文件或位于UNC共享。"你知道什么可以用这个文件吗?有什么办法可以解决吗?
我的一般想法是从我的程序访问一个。mdf文件,这样就不需要使用sql服务器,数据库文件将位于程序目录的某个地方。你认为最大的问题是我的方法吗?: -)