Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在SQL命令中提交insert时如何读取行数据?_C#_Sql Server - Fatal编程技术网

C# 在SQL命令中提交insert时如何读取行数据?

C# 在SQL命令中提交insert时如何读取行数据?,c#,sql-server,C#,Sql Server,我编写了以下代码,用于在表中插入一行: SqlConnection TITLEconnection = new SqlConnection(conn); SqlCommand prikaz = new SqlCommand("INSERT INTO Customer_Care_Database_Analysis_TITLE(sharhe_amaliyat,az_tarix,ta_tarix,code_faaliyat,name_faaliyat) values(@sharhe_amaliyat,

我编写了以下代码,用于在表中插入一行:

SqlConnection TITLEconnection = new SqlConnection(conn);
SqlCommand prikaz = new SqlCommand("INSERT INTO Customer_Care_Database_Analysis_TITLE(sharhe_amaliyat,az_tarix,ta_tarix,code_faaliyat,name_faaliyat) values(@sharhe_amaliyat,@az_tarix,@ta_tarix,@code_faaliyat,@name_faaliyat)",TITLEconnection);
prikaz.Parameters.AddWithValue("@sharhe_amaliyat", sharhe_amaliyat);
prikaz.Parameters.AddWithValue("@az_tarix", az_tarix);
prikaz.Parameters.AddWithValue("@ta_tarix", ta_tarix);
//prikaz.Parameters.AddWithValue("@ta_tarix", ta_tarix);
prikaz.Parameters.AddWithValue("@code_faaliyat", code_faaliyat);
prikaz.Parameters.AddWithValue("@name_faaliyat", name_faaliyat);
TITLEconnection.Open();
prikaz.ExecuteNonQuery();
TITLEconnection.Close();

但我想插入一行,然后读取插入的列。例如,在
code\u faaliyat
列中插入“A”字符,然后读取
code\u faaliyat
字符“A”,我如何解决这个问题?

因为您使用
ExecuteNonQuery()
提交,所以您只会收到插入的行数


相反,您应该研究使用,让它返回插入行的标识值,然后在中执行select语句来读取插入的数据。我建议查看上述链接页面中的示例,以便更好地使用代码周围的using和try/catch块。

由于您使用
ExecuteNonQuery()
进行提交,因此您只会收到插入的行数

相反,您应该研究使用,让它返回插入行的标识值,然后在中执行select语句来读取插入的数据。我建议查看上述链接页面中的示例,以便更好地使用代码周围的using和try/catch块。

我编写了以下代码:

SqlConnection TITLEconnection = new SqlConnection(conn);
    SqlCommand prikaz = new SqlCommand("INSERT INTO Customer_Care_Database_Analysis_TITLE(sharhe_amaliyat,az_tarix,ta_tarix,code_faaliyat,name_faaliyat) values(@sharhe_amaliyat,@az_tarix,@ta_tarix,@code_faaliyat,@name_faaliyat);SELECT CAST(scope_identity() AS bigint)", TITLEconnection);
    prikaz.Parameters.AddWithValue("@sharhe_amaliyat", sharhe_amaliyat);
    prikaz.Parameters.AddWithValue("@az_tarix", az_tarix);
    prikaz.Parameters.AddWithValue("@ta_tarix", ta_tarix);
    prikaz.Parameters.AddWithValue("@code_faaliyat", code_faaliyat);
    prikaz.Parameters.AddWithValue("@name_faaliyat", name_faaliyat);
    TITLEconnection.Open();

    id = (Int64)prikaz.ExecuteScalar();

    TITLEconnection.Close();
它是有效的。

我写了以下代码:

SqlConnection TITLEconnection = new SqlConnection(conn);
    SqlCommand prikaz = new SqlCommand("INSERT INTO Customer_Care_Database_Analysis_TITLE(sharhe_amaliyat,az_tarix,ta_tarix,code_faaliyat,name_faaliyat) values(@sharhe_amaliyat,@az_tarix,@ta_tarix,@code_faaliyat,@name_faaliyat);SELECT CAST(scope_identity() AS bigint)", TITLEconnection);
    prikaz.Parameters.AddWithValue("@sharhe_amaliyat", sharhe_amaliyat);
    prikaz.Parameters.AddWithValue("@az_tarix", az_tarix);
    prikaz.Parameters.AddWithValue("@ta_tarix", ta_tarix);
    prikaz.Parameters.AddWithValue("@code_faaliyat", code_faaliyat);
    prikaz.Parameters.AddWithValue("@name_faaliyat", name_faaliyat);
    TITLEconnection.Open();

    id = (Int64)prikaz.ExecuteScalar();

    TITLEconnection.Close();

并且它可以工作。

更改insert语句,然后使用:

试试这个:

string insertSql = 
    "INSERT INTO Customer_Care_Database_Analysis_TITLE(sharhe_amaliyat,az_tarix,ta_tarix,code_faaliyat,name_faaliyat) OUTPUT INSERTED.ID VALUES(@sharhe_amaliyat,@az_tarix,@ta_tarix,@code_faaliyat,@name_faaliyat)";

using (SqlConnection TITLEconnection = new SqlConnection(conn)))
{
   SqlCommand prikaz = new SqlCommand(insertSql, TITLEconnection);

    rikaz.Parameters.AddWithValue("@sharhe_amaliyat", sharhe_amaliyat);
    prikaz.Parameters.AddWithValue("@az_tarix", az_tarix);
    prikaz.Parameters.AddWithValue("@ta_tarix", ta_tarix);
    prikaz.Parameters.AddWithValue("@ta_tarix", ta_tarix);
    prikaz.Parameters.AddWithValue("@code_faaliyat", code_faaliyat);
    prikaz.Parameters.AddWithValue("@name_faaliyat", name_faaliyat);

    TITLEconnection.Open();
    prikaz.ExecuteNonQuery();

    Int32 newId = (Int32) prikaz.ExecuteScalar();

    TITLEconnection.Close();
}

更改insert语句,然后使用:

试试这个:

string insertSql = 
    "INSERT INTO Customer_Care_Database_Analysis_TITLE(sharhe_amaliyat,az_tarix,ta_tarix,code_faaliyat,name_faaliyat) OUTPUT INSERTED.ID VALUES(@sharhe_amaliyat,@az_tarix,@ta_tarix,@code_faaliyat,@name_faaliyat)";

using (SqlConnection TITLEconnection = new SqlConnection(conn)))
{
   SqlCommand prikaz = new SqlCommand(insertSql, TITLEconnection);

    rikaz.Parameters.AddWithValue("@sharhe_amaliyat", sharhe_amaliyat);
    prikaz.Parameters.AddWithValue("@az_tarix", az_tarix);
    prikaz.Parameters.AddWithValue("@ta_tarix", ta_tarix);
    prikaz.Parameters.AddWithValue("@ta_tarix", ta_tarix);
    prikaz.Parameters.AddWithValue("@code_faaliyat", code_faaliyat);
    prikaz.Parameters.AddWithValue("@name_faaliyat", name_faaliyat);

    TITLEconnection.Open();
    prikaz.ExecuteNonQuery();

    Int32 newId = (Int32) prikaz.ExecuteScalar();

    TITLEconnection.Close();
}

是否要读取“代码”列中最近插入的值??您已经将其作为参数传递到方法中。我遗漏了什么吗?是的,我的朋友,我想读取最近插入的值。表上有自动标识列吗?@DarkKnight否,我没有标识字段。表上的主键是什么?你想读取code_faaliyat列中最近插入的值吗??您已经将其作为参数传递到方法中。我遗漏了什么吗?是的,我的朋友,我想读取最近插入的值。表上有自动标识列吗?@DarkKnight否我没有标识字段。表上的主键是什么?它是直接指向任一命令的MSDN文档的链接。此外,从最初的问题中还不清楚主键是什么,因此我无法简单地提供ExecuteReader命令的示例。错误:附加信息:对象引用未设置为对象的实例。它是直接指向任一命令的MSDN文档的链接。此外,从最初的问题来看,主键是什么还不清楚,因此我无法轻松提供ExecuteReader命令的示例。错误:其他信息:对象引用未设置为对象的实例。