我有这个代码 INSERT 在C#中的Arquivo表中的值:
public int **_Salvar**(Arquivo arquivo)
{
SqlConnection connection = new SqlConnection(connectionString);
try
{
DataTable dt = new DataTable();
string procedure = "STP_Arquivo_INSERT";
SqlCommand comand = new SqlCommand(procedure, connection);
comand.CommandType = CommandType.StoredProcedure;
comand.Parameters.AddWithValue("@sistema_id", arquivo._Sistema_id);
comand.Parameters.AddWithValue("@arquivo_nome", arquivo._arquivo_nome);
comand.Parameters.AddWithValue("@arquivo_formato",
arquivo._Arquivo_formato);
comand.Parameters.AddWithValue("@arquivo_caminho",
arquivo._Arquivo_caminho);
comand.Parameters.AddWithValue("@arquivo_tamanho",
arquivo._Arquivo_tamanho);
comand.Parameters.AddWithValue("@arqiuvo_criacao",
arquivo._Arqiuvo_criacao);
comand.Parameters.AddWithValue("@arquivo_pasta", arquivo._Arquivo_pasta);
connection.Open();
SqlDataReader dataReader = comand.ExecuteReader();
// IDataReader dr = comand.ExecuteReader();
// return (int)dataReader.Read;
int arq = -1;
if (dataReader.Read())
{
// arquivo._Sistema_id = (int)dataReader["sistema_id"];
// arquivo._arquivo_nome = dataReader["arquivo_nome"].ToString();
// arquivo._Arquivo_formato = dataReader["arquivo_formato"].ToString();
// arquivo._Arquivo_caminho = dataReader["arquivo_caminho"].ToString();
// arquivo._Arquivo_tamanho = dataReader["arquivo_tamanho"].ToString();
// arquivo._Arqiuvo_criacao = (DateTime)dataReader["arqiuvo_criacao"];
// arquivo._Arquivo_pasta = dataReader["arquivo_pasta"].ToString();
arq = (int)dataReader["arquivo_id"];
}
return arq;
}
catch (Exception err)
{
throw (err);
}
finally
{
connection.Close();
}
}
我有这个StoredProcedure:
ALTER PROCEDURE [dbo].[STP_Arquivo_INSERT]
@sistema_id Int
, @arquivo_nome varchar(510)
, @arquivo_formato varchar (100)
, @arquivo_caminho varchar (510)
, @arquivo_tamanho varchar (20)
, @arqiuvo_criacao DateTime
, @arquivo_pasta VarChar (255)
AS
BEGIN
INSERT INTO
Arquivo
(
sistema_id
, arquivo_nome
, arquivo_formato
, arquivo_caminho
, arquivo_tamanho
, arqiuvo_criacao
, arquivo_pasta
)
VALUES
(
@sistema_id
, @arquivo_nome
, @arquivo_formato
, @arquivo_caminho
, @arquivo_tamanho
, @arqiuvo_criacao
, @arquivo_pasta
)
DECLARE @ret INT
SELECT @ret = ISNULL(@@IDENTITY, -1)
RETURN @ret
END
我希望能够获得在SQl中返回的@@ IDENTITY。但我不能用这个INSERT(_Salvar)做到这一点。 DataReader没有返回值......
:'(