夥計們,請我已經試過幾乎所有的東西我知道,我也可以實現所有的可能性...失蹤結果查詢從ASP.NET的WebService SQL Server時
會發生什麼事是,當我做出這個選擇通過PROC或commandtext,我的數據讀取器只返回3條記錄,但是我有7個數據庫與這些參數。 如果我將這3個標記爲已讀,併發出新的請購單,則只會將2個發回給我。同樣,如果只有一個,最後一個永遠不會被帶回給我。
這裏是我的代碼
public List<Documentos> GetDocumentosDisponiveisParaMotorista(string motoristaCpf, string veiculoPlaca,
long transportadora)
{
var retorno = new List<Documentos>();
var command = Banco.GetStoredProcCommand("dbo.SelectDocumentos");
AddInParameter(command, "@MotoristaCpf", motoristaCpf);
AddInParameter(command, "@VeiculoPlaca", veiculoPlaca.ToUpper());
AddInParameter(command, "@TransportadoraId", transportadora);
//var command = Banco.GetSqlStringCommand("SELECT " +
// "TransportadoraId" +
// ", FilialSigla" +
// ", TipoDocumentoId" +
// ", Documento" +
// ", DocumentoSerie" +
// ", MotoristaCpf" +
// ", VeiculoPlaca" +
// ", DocumentoChave" +
// ", DocumentoTransporte" +
// ", TipoDocTransporte" +
// ", NumeroNotaFiscal" +
// ", DestinatarioCpfCnpj" +
// ", LocalEntregaId" +
// ", StatusId" +
// ", Comprovante" +
// ", Transmitido" +
// ", TransmitidoData" +
// ", DataCadastro" +
// ", DataAlteracao " +
// "FROM Documentos WITH(NOLOCK) " +
// "WHERE MotoristaCpf = @MotoristaCpf " +
// "AND VeiculoPlaca = @VeiculoPlaca " +
// "AND TransportadoraId = @TransportadoraId " +
// "AND Transmitido is null ");
//command.Parameters.Add(new SqlParameter("@MotoristaCpf", SqlDbType.NVarChar, 11, "MotoristaCpf"));
//command.Parameters.Add(new SqlParameter("@VeiculoPlaca", SqlDbType.NVarChar, 7, "VeiculoPlaca"));
//command.Parameters.Add(new SqlParameter("@TransportadoraId", SqlDbType.BigInt, 999999999, "TransportadoraId"));
//command.Parameters["@MotoristaCpf"].Value = motoristaCpf;
//command.Parameters["@VeiculoPlaca"].Value = veiculoPlaca.ToUpper();
//command.Parameters["@TransportadoraId"].Value = transportadora;
//command.Connection = Banco.CreateConnection();
//command.Connection.Open();
//command.CommandTimeout = 3600;
using (var dataReader = Banco.ExecuteReader(command))
{
while (dataReader.Read())
{
retorno.Add(dataReader.Read() ? Preencher(dataReader) : null);
}
dataReader.Close();
}
return retorno;
}
我使用SQL Server 2005中這是在asp.net C#WebService的代碼。我的連接是使用連接字符串進行的。我不使用NHibernate,我正在使用Microsoft.Practices.EnterpriseLibrary.Data
。
您正在推進閱讀器兩次,調用'Read()'兩次。不要這樣做。 – Crowcoder