当前位置: 首页 > 面试题库 >

C#在SQL中编辑行

郑哲彦
2023-03-14
问题内容

我的代码出现了一些问题。

这是我数据库类中的方法

public void editproduct(string a, int b, int c)
{
    conn.Open();
    SqlCommand command = new SqlCommand("UPDATE Productdescription SET pdescription = '" + a + "',Price = " + b + " WHERE pid = " + c + ")", conn);
    command.ExecuteNonQuery();
    conn.Close();
}

我尝试用我的按钮在这里执行它。

private void button1_Click(object sender, EventArgs e)
{
    Database db = new Database();
    db.editproduct(textBox1.Text, Convert.ToInt32(textBox2.Text), Convert.ToInt32(textBox3.Text));
}

但是我得到这个错误::

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near ')'.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Larman_Project.Database.editproduct(String a, Int32 b, Int32 c) in C:\Users\Admin\Documents\Visual Studio 2015\Projects\Larman Project\Larman Project\opretp.cs:line 318
   at Larman_Project.editp.button1_Click(Object sender, EventArgs e) in C:\Users\Admin\Documents\Visual Studio 2015\Projects\Larman Project\Larman Project\editp.cs:line 23
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
ClientConnectionId:73640ec3-2098-461b-912f-518ceac4e74b
Error Number:102,State:1,Class:15


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Larman Project
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Admin/Documents/Visual%20Studio%202015/Projects/Larman%20Project/Larman%20Project/bin/Debug/Larman%20Project.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Data
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Transactions
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll
----------------------------------------
System.EnterpriseServices
    Assembly Version: 4.0.0.0
    Win32 Version: 4.6.1590.0 built by: NETFXREL2
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

因此,基本上我只需要编写一些快速代码来测试它是否可以这种方式工作,所以不要介意命名。但是由于某种原因它无法正常工作,我尝试不这样做而TextBox只执行我在MSSQL中测试过的语句,就可以正常工作。


问题答案:

)的更新声明后有一个迷路者。去掉它。另外,您应始终使用 参数化查询来避免SQL注入。

SqlCommand command = new SqlCommand(
 "UPDATE Productdescription SET pdescription = @a,Price = @b WHERE pid = @c";
 command.Parameters.AddWithValue("@a", a);
 command.Parameters.AddWithValue("@b", a);
 command.Parameters.AddWithValue("@c", a);

尽管直接指定类型和使用Value属性比AddWithValue

command.Parameters.Add("@a", SqlDbType.VarChar).Value = a;

我们可以停止使用AddWithValue()了吗?



 类似资料:
  • 在“SQL 编辑器”选项卡,你可以创建和编辑视图的 SELECT 语句 SQL。Navicat Data Modeler 为编辑视图定义提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置 sql 格式及更多。 【提示】当你在视图创建工具创建视图,SELECT 语句将会自动生成。 美化 SQL(仅适用于非 Essentials 版) 若要格式化凌乱的 SQL 代码到一个结构良好的脚本,你

  • SQL 编辑器让你创建和编辑 SQL 文本,准备和运行已选择的查询。你可以在一个查询窗口编写多句 SQL 语句。拖放或双击右侧的“标识符”窗格的一个标识符来将它添加到编辑器中。 【提示】当你使用 SQL 创建工具创建 SQL 时,SELECT 语句将会在 SQL 编辑器中自动生成。 Navicat 提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置 SQL 格式及更多。 设置 SQL

  • 编辑器让你创建和编辑 SQL 文本,准备和运行已选择的查询。你可以在一个查询窗口编写多句 SQL 语句。拖放或双击右侧的“标识符”窗格的一个标识符来将它加到编辑器中。 【提示】当你使用 SQL 创建工具创建 SQL 时,SELECT 语句将会在 SQL 编辑器中自动生成。 Navicat 提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置 SQL 格式及更多。 设置 SQL 格式 若要

  • SQL 编辑器让创建和编辑 SQL 文本,准备和运行已选择的查询。你可以在一个查询窗口编写多句 SQL 语句。拖放或双击右侧的“标识符”窗格的一个标识符来将它添加到编辑器中。 【提示】当你使用 SQL 创建工具创建 SQL 时,SELECT 语句将会在 SQL 编辑器中自动生成。 Navicat 提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置 SQL 格式及更多。 设置 SQL 格

  • 我正在处理flyway Db迁移,我下载了flyway zip文件夹,并将其放在本地计算机上。 sql文件夹中有两个文件,即V1\uu Create\u person\u表。sql和V2\uu添加\u人员。sql。 飞行路线信息 Boxfuse Flyway Community Edition 5.2.4 数据库:jdbc:h2:文件:/foobardb(H2 1.4) 架构版本: Flyway迁

  • 问题内容: 如何在Oracle SQL Developer中编辑BLOB(包含JSON文本)? 我可以打开并查看它们,但是是否需要外部编辑器来编辑它们?答案非常感谢您对使用内容(即使只是记事本)及其使用方法的任何帮助。 编辑:有问题的BLOB包含JSON文本。 问题答案: 如果您在SQL Developer 3.1(可能还有较早的版本)中运行查询以返回BLOB,则可以双击您感兴趣的特定BLOB,在