我开发了一个库存管理应用程序。它已经使用了将近 1 年。但我决定测试一些报告,所以我备份了在 SQL Server 2008 Express 中运行的数据库。当我在我的电脑上运行应用程序时,我得到了空行,但是当我在商店中运行它时,我得到了结果,如果我删除了 datetime 范围,它也会给我数据。
我使用报告的下一个代码:
frmReporteSurtido repmi = new frmReporteSurtido();
string query = "SELECT * from [SAIV].[dbo].Vista_MovInv ";
query = query + "WHERE (FechaHora BETWEEN @Horai AND @Horaf ) and idTiposdeMovimiento=1 and Concepto='TRANSFERENCIA DE ALMACÉN'";
if (!cbTS.Checked)
query = query + " AND SUCURSAL='" + idSucursalesComboBox.Text + "' ";
if (!cbTA.Checked)
query = query + " AND ALMACÉN='" + idAlmacenesComboBox.Text + "' ";
if (!cbTU.Checked)
query = query + " AND UBICACIÓN='" + comboBox1.Text + "' ";
this.DSTCON.Vista_MovInv.Clear();
try
{
SqlConnection conn = new SqlConnection(clsData.strConexion);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(query, conn);
DateTime d1 = new DateTime(dateTimePicker1.Value.Year, dateTimePicker1.Value.Month, dateTimePicker1.Value.Day, 00, 00, 00);
DateTime d2 = new DateTime(dateTimePicker2.Value.Year, dateTimePicker2.Value.Month, dateTimePicker2.Value.Day, 23, 59, 59);
adapter.SelectCommand.Parameters.Add("@Horai",SqlDbType.DateTime).Value= d1;
adapter.SelectCommand.Parameters.Add("@Horaf",SqlDbType.DateTime).Value=d2;
adapter.Fill(DSTCON.Vista_MovInv);
}
catch (Exception ec) { DataControl.Guardar_Error(ec, this.Name); }
repmi.crptSurtido1.SetDataSource(this.DSTCON);
repmi.MdiParent = this.MdiParent;
repmi.Show();
我认为是日期时间问题,但我找不到。两台服务器(一台在商店,另一台在我家)具有相同的排序规则。此外,我更改了我的家庭服务器和 myu pc 中的区域设置,但没有任何反应。
感谢您的帮助。