vos*_*art 20 c# sql sql-server-express
我现在遇到了一个问题,我正在努力解决这个问题.我只是尝试访问数据库并在C#的帮助下插入一些值
我试过的东西(工作)
String query = "INSERT INTO dbo.SMS_PW (id,username,password,email) VALUES ('abc', 'abc', 'abc', 'abc')";
Run Code Online (Sandbox Code Playgroud)
插入了一个新行,一切正常,现在我尝试使用变量插入一行:
String query = "INSERT INTO dbo.SMS_PW (id,username,password,email) VALUES (@id, @username, @password, @email)";
command.Parameters.AddWithValue("@id","abc")
command.Parameters.AddWithValue("@username","abc")
command.Parameters.AddWithValue("@password","abc")
command.Parameters.AddWithValue("@email","abc")
command.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
没有工作,没有插入任何值.我又尝试了一件事
command.Parameters.AddWithValue("@id", SqlDbType.NChar);
command.Parameters["@id"].Value = "abc";
command.Parameters.AddWithValue("@username", SqlDbType.NChar);
command.Parameters["@username"].Value = "abc";
command.Parameters.AddWithValue("@password", SqlDbType.NChar);
command.Parameters["@password"].Value = "abc";
command.Parameters.AddWithValue("@email", SqlDbType.NChar);
command.Parameters["@email"].Value = "abc";
command.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
愿有人能告诉我我做错了什么吗?
亲切的问候
编辑:
在另一行中,我正在创建一个新的SQL-Command
var cmd = new SqlCommand(query, connection);
Run Code Online (Sandbox Code Playgroud)
仍然没有工作,我在上面的代码中找不到任何错误.
And*_*aes 39
我假设您已连接到数据库,并且无法使用c#执行插入参数.
您没有在查询中添加参数.它应该看起来像:
String query = "INSERT INTO dbo.SMS_PW (id,username,password,email) VALUES (@id,@username,@password, @email)";
SqlCommand command = new SqlCommand(query, db.Connection);
command.Parameters.Add("@id","abc");
command.Parameters.Add("@username","abc");
command.Parameters.Add("@password","abc");
command.Parameters.Add("@email","abc");
command.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
更新:
using(SqlConnection connection = new SqlConnection(_connectionString))
{
String query = "INSERT INTO dbo.SMS_PW (id,username,password,email) VALUES (@id,@username,@password, @email)";
using(SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@id", "abc");
command.Parameters.AddWithValue("@username", "abc");
command.Parameters.AddWithValue("@password", "abc");
command.Parameters.AddWithValue("@email", "abc");
connection.Open();
int result = command.ExecuteNonQuery();
// Check Error
if(result < 0)
Console.WriteLine("Error inserting data into Database!");
}
}
Run Code Online (Sandbox Code Playgroud)
the*_*Law 12
尝试
String query = "INSERT INTO dbo.SMS_PW (id,username,password,email) VALUES (@id,@username, @password, @email)";
using(SqlConnection connection = new SqlConnection(connectionString))
using(SqlCommand command = new SqlCommand(query, connection))
{
//a shorter syntax to adding parameters
command.Parameters.Add("@id", SqlDbType.NChar).Value = "abc";
command.Parameters.Add("@username", SqlDbType.NChar).Value = "abc";
//a longer syntax for adding parameters
command.Parameters.Add("@password", SqlDbType.NChar).Value = "abc";
command.Parameters.Add("@email", SqlDbType.NChar).Value = "abc";
//make sure you open and close(after executing) the connection
connection.Open();
command.ExecuteNonQuery();
connection.Close();
}
Run Code Online (Sandbox Code Playgroud)
最常见的错误(特别是使用快递时)"我的插入没有发生"是:查找错误的文件.
如果您使用的是基于文件的快速(而不是强附加),则项目文件夹中的文件(例如c:\dev\myproject\mydb.mbd)不是程序中使用的文件.在构建时,该文件被复制 - 例如c:\dev\myproject\bin\debug\mydb.mbd; 你的程序执行的背景下c:\dev\myproject\bin\debug\,因此它是在这里,你需要看看,如果编辑实际发生的情况.检查是否确定:查询应用程序内部的数据(插入后).
| 归档时间: |
|
| 查看次数: |
220223 次 |
| 最近记录: |