请帮我加快桌面上的UPDATE操作.表具有唯一ID,用于查找记录和UPDATE其字段.表中有1M条记录.没有使用索引.只有唯一的ID.插入需要一些时间..我预期毫秒.
表结构:
create table customers
(
id int IDENTITY(1,1) UNIQUE NOT NULL,
phonenum varchar(15) UNIQUE NOT NULL,
date datetime,
company varchar(150),
full_name varchar(150),
address varchar(150),
street varchar(100),
zip varchar(100),
city varchar(100),
info varchar(300),
op_data varchar(150),
op_date datetime,
op_user_taken varchar(100),
op_time_taken datetime,
op_status varchar(100),
user_taken varchar(100),
time_taken datetime,
status varchar(100),
);
Run Code Online (Sandbox Code Playgroud)
我正在使用SqlConnection System.Data.SqlClient.SqlConnection和ExecuteNonQuery方法来更新记录.
我的表需要重新设计还是ExecuteNonQuery这么慢?
编辑:更新命令:
"UPDATE customers SET user_taken=@param1, time_taken=@param2,
date=@param3, company=@param4, full_name=@param55,
address=@param6, street=@param8, zip=@param9,
city=@param10, info=@param11 , status=\'Completed\',
op_data=@param12 WHERE id=@param7";
Run Code Online (Sandbox Code Playgroud) 大家好我有这个代码
cmd = new SqlCommand();
cmd.Connection = baglanti;
cmd.CommandText = "(musteriadi,musterisoyadi,gsm,email,sirketadi,Adres,Notlar) VALUES('" + txtMusteriAdi.Text.Trim() + "','" + txtMusteriSoyadi.Text.Trim() + "','" + txtGsm.Text.Trim() + "','" +txtEmail.Text.Trim() + "','" +txtSirketAdi.Text.Trim() + "','" +txtAdres.Text.Trim() + "','" +txtNotlar.Text.Trim() +"');";
baglanti.Open();
cmd.ExecuteNonQuery();
baglanti.Close();
Run Code Online (Sandbox Code Playgroud)
我将cmd定义为a,public SqlCommmand并且在每次代码到达时cmd.ExecuteNonQuery()它都会抓住我能做什么.
当我使用SqlCommand.ExecuteNonQuery()它并且它CommandText有GO(提交)它时,我得到一个SQLException.
我删除它,SQL工作,但整个SQL有很多语句,我想在每个语句运行后提交.而且我不想将它们分成多个SqlCommand对象.
有没有更好的解决方案来保持提交和保持一个独特的SqlCommand对象?
我已经尝试了很多不同的东西,我不断得到同样的错误
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
它抛出了我.
System.Data.dll中发生类型为"System.Data.SqlClient.SqlException"的未处理异常附加信息:"VALUE"附近的语法不正确.
码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace Server_Testing
{
class Program
{
static void Main(string[] args)
{
string conString = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
SqlConnection con = new SqlConnection(conString);
con.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO Test (Id, Name) VALUE (@Id, @Name)", con);
if(con.State == ConnectionState.Open)
{
//cmd.Parameters.Add(new SqlParameter("@Id", 1));
//cmd.Parameters.Add(new SqlParameter("@Name", "MyName"));
//cmd.Parameters.AddWithValue("@Id", 1);
//cmd.Parameters.AddWithValue("@Name", SqlDbType.NVarChar).Value = "MyName";
cmd.Parameters.AddWithValue("@Id", 1);
cmd.Parameters.AddWithValue("@Name", "Myname");
cmd.ExecuteNonQuery();
}
}
}
} …Run Code Online (Sandbox Code Playgroud)