cmd.ExecuteNonQuery()在我的程序中做了什么

Par*_*rth 6 c# database asp.net

string connection = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=D:\\it101\\LoginForm\\App_Data\\registration.mdb";

string query = "INSERT INTO [registration] ([UserID] , [Name] , [Contact_no] , [City]) values (123, 'abc' ,12345, 'pqr')";

OleDbConnection con = new OleDbConnection(connection);
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = query;
cmd.CommandType = CommandType.Text;
cmd.Connection = con;

con.Open();
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

如果我不在程序结束时编写cmd.ExecuteNonQuery()怎么办?如果需要执行查询,为什么要编写executeNonquery()而不是executeQuery()?

Aja*_*jay 15

如果我们想处理数据库,会发生两件事情,即; 修改,检索

修改:

在修改部分,我们有Insert,Delete,Update,... queries.so为此我们需要使用ExecuteNonQuery命令.为什么因为我们没有查询数据库,我们正在修改.

句法:

cmd.ExecuteNonQuery方法

检索:

在这里我们使用Select Statement 查询数据库.为此我们使用ExecuteReader(),ExecuteScalar()

如果select Query返回多个记录.我们需要使用ExecuteReader()

如果select Query只返回一条记录.我们需要使用ExecuteScalar()

句法:

cmd.ExecuteReader()方法

cmd.ExecuteScalar()方法

上面的语句(ExecuteReader(),ExecuteScalar(),SqlCommand.ExecuteNonQuery())用于执行您在SqlCommand中提供的命令语句.如果您不使用,则不执行您的命令.


RB.*_*RB. 6

ExecuteNonQuery 执行不会产生任何结果的查询(例如更新或插入)。

ExecuteQuery 执行一个应该产生结果的查询(即一个 SELECT)。

如果你最后没有写 ExecuteNonQuery,你的查询将不会被执行。


Nag*_*j S 5

SqlCommand.ExecuteNonQuery方法

对连接执行语句,并返回受影响的行数。对于UPDATE,INSERT和DELETE语句,返回值是该命令影响的行数。

executeQuery方法

运行给定的SQL语句并返回一个SQLServerResultSet对象。

如果要执行查询,则应使用ExecuteNonQuery