0

我开发了一个库存管理应用程序。它已经使用了将近 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 中的区域设置,但没有任何反应。

感谢您的帮助。

4

3 回答 3

1

:( 真蠢。

错误在这里:

string query = "SELECT * from [SAIV].[dbo].Vista_MovInv ";

我这样命名我恢复的备份:

[SAIV_TAM];

所以我试图从没有新数据的数据库中获取信息。

此外,我修改库存的存储过程指向我的开发数据库而不是备份,并且因为我工作场所和我家的数据库具有相同的名称,所以当我重命名它时遇到问题。

感谢您的帮助,并为我的愚蠢感到抱歉。

于 2013-05-09T18:44:07.797 回答
0

也许您的 PC 与数据库的日期时间(语言)格式不同。您应该将日期时间格式更改为“yyyy-MM-dd”。

于 2013-05-09T07:48:03.700 回答
0

更改以下行:

adapter.SelectCommand.Parameters.Add("@Horai",SqlDbType.DateTime).Value= d1;
adapter.SelectCommand.Parameters.Add("@Horaf",SqlDbType.DateTime).Value=d2;

adapter.SelectCommand.Parameters.Add("@Horai",SqlDbType.DateTime).Value= new SqlDateTime(d1);
adapter.SelectCommand.Parameters.Add("@Horaf",SqlDbType.DateTime).Value= new SqlDateTeim(d2);
于 2013-05-09T07:51:44.110 回答