当前位置: 首页 > 知识库问答 >
问题:

使用C#检查文本是否已退出SQL Server

商昂然
2023-03-14

我第一次使用C#和SQL Server构建简单的ERP系统。我试图检查textBox中的值是否已经存在于数据库中;当窗体打开并键入字段时,我得到一个异常

下面是检查函数:

    private void txtRef_Validated(object sender, EventArgs e)
    {          
        BL.CLS_PRODUCTS prd = new BL.CLS_PRODUCTS();
        DataTable Dt = new DataTable();
        Dt = prd.VarifyProductID(txtRef.Text);

        if (Dt.Rows.Count > 0)
        {
            MetroMessageBox.Show(this, "الصنف موجود مسبقاً", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            txtRef.Focus();
            txtRef.SelectionStart = 0;
            txtRef.SelectionLength = txtRef.Text.Length;
        }
    }
da.Fill(dt);

public DataTable SelectData(string stored_procedure, SqlParameter[] param)
{
        SqlCommand sqlcmd = new SqlCommand();
        sqlcmd.CommandType = CommandType.StoredProcedure;
        sqlcmd.CommandText = stored_procedure;
        sqlcmd.Connection = sqlconnection;

        if (param != null)
        {
            for (int i = 0; i < param.Length; i++)
            {
                sqlcmd.Parameters.Add(param[i]);
            }
        }

        SqlDataAdapter da = new SqlDataAdapter(sqlcmd);
        DataTable dt = new DataTable();
        da.Fill(dt);
        return dt;
    }
public DataTable VerifyProductID(string ID)
{
    DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
    DataTable Dt = new DataTable();

    SqlParameter[] param = new SqlParameter[1];
    param[0] = new SqlParameter("@ID", SqlDbType.VarChar, 50);
    param[0].Value = ID;

    Dt = DAL.SelectData("VerifyProductID", null);
    DAL.Close();

    return Dt;
}
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROC [dbo].[VerifyProductID]
    @ID VARCHAR(50)
AS
    SELECT * 
    FROM PRODUCTS 
    WHERE ID = @ID

StackTrace:
位于System.data.sqlclient.sqlConnection.onerror(SqlException exception,Boolean breakConnection,Action1 wrapCloseInAction)位于System.data.sqlClient.sqlInternalConnection.onerror(SqlException exception,Boolean breakConnection,Action1 wrapCloseInAction)位于System.data.sqlClient.tdSparser.throwException在System.data.sqlclient.SqlDataReader.tryconsumemetadata()在System.data.sqlclient.SqlCommand.finishexecuteReader(sqldataader ds,RunBehavior RunBehavior,String rehtml" target="_blank">setOptionsString)在system.data.sqlclient.SqlCommand.runExecuteReadds(CommandBehavior cmdBehavior,RunBehavior RunBehavior,Boolean returnSsystem.data.sqlclient.sqlcommand.runexecuteReader(CommandBehavior cmdBehavior,RunBehavior RunBehavior,Boolean returnStream,String method,task&task,Boolean asyncWrite,String method,TaskCompletionSource`1 Complinition,Int32 timeout,Int32 timeout,task&task,Boolean asyncWrite)D.ExecuteDbDataReader(CommandBehavior behavior)在System.data.common.dbCommand.System.data.common.dbCommand.IDbCommand.ExecuteReader(CommandBehavior behavior)在System.data.common.dbDataAdapter.Fillinternal(DataSet DataSet,DataTable[]datatables,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand command,CommandBehavior,Int32 maxRecords,IDbCommand命令,CommandBehavior)在System.data.common.dbdataAdapter.fill(DataTable DataTable)在e_and_m.dal.dataAccesslayer.selectData(String stored_procedure,sqlparameter[]param)在C:\users\kh\documents\visual Studio 2012\projects\e_and_m\e_and_m\dal\disual Studio 2012\drojects\dataAccesslayer.cs:c中的add_proudect.txtref_validated(对象发件人,EventArgs e)在C:\users\kh\documents\visual Studio 2012\projects\e_and_m\e_and_m\pl\frm_add_proudect.cs:第33行在system.windows.forms.Control.onvalidated(EventArgs e)在system.windows.forms.Control.performcontrolidated(Boolean bulkValidation)在

共有1个答案

赵佐
2023-03-14
Dt = DAL.SelectData("VarifyProductID", null);

应该是

Dt = DAL.SelectData("VarifyProductID", param);
 类似资料:
  • 问题内容: 我想控制是否退出,但是找不到解决方法。 我还探讨了的属性,但是找不到任何特定的方法来获取有关驱动程序状态的信息。还要检查会话ID: 问题答案: 如果您探索python- selenium驱动程序的源代码,则将看到firefox驱动程序的方法在做什么: 您可以在此处依赖某些内容:检查是否存在或检查状态。它可以工作,但是您还可以看到只有“外部调用”,并且 在python端没有任何改变 可以

  • 以下是示例代码: (由于某种原因,这里的窗户关闭了) 回溯(最后一次调用):文件“/usr/local/lib/python2.7/dist packages/selenium/webdriver/firefox/webdriver.py”第183行中的“文件”,第1行。退出(self)文件“/usr/local/lib/python2.7/dist packages/selenium/webdr

  • 一个类似于Iterator中的的方法,在异常抛出和布尔返回行为中(尽管没有与的约定)。 示例: 目标是在客户端代码调用此方法而不消耗流的情况下早期失败。 一个可接受的答案也可以是“没有解决方案存在”,并有充分的理由说明为什么规范不能添加这样的方法(如果有充分的理由的话)。看起来JDK流通常在其终端方法的开头有以下代码段: 因此,对于这些流,实现这样的方法似乎并不困难。

  • 问题内容: 我需要检查一组页面对象,以查看每个对象是否在其WebDriver上调用了quit()。 我编写了以下方法来检查WebDriver的状态: 问题就在这里:我不喜欢抛出异常来发现布尔值的真相,但是由于 WebDriver API 没有提供检查驱动程序是否退出的方法,因此我似乎别无选择。 所以我的问题是, 是否有更好的方法来检查WebDriver是否已退出? 我在这里找到了一个类似的问题(但

  • 问题内容: 以编程方式检查PDF文件是否被完全扫描的最佳方法是什么?我确实可以使用iText和PDFBox。我可以检查pdf文件是否包含文本,并根据结果确定该文件是否为OCRed,但是此解决方案并非100%准确。我想知道是否还有另一种方法来解决这个问题。 如您所知,解决方案必须基于Java。 问题答案: 最好的选择是检查它是否包含文本,还查看它是否包含大的页面化图像或覆盖页面的大量平铺图像。如果您

  • 问题内容: 我继承了子类并重载了,现在我可以像这样重构文本,但是我不想处理透明文本,这通常是垃圾。 我怎么知道某些文本是否透明? 问题答案: 事实证明, 透明文本 实际上根本不是透明的,而只是被图像覆盖:在201103 SA的关键吸烟统计数据2010 FINAL.pdf中 ,图像“ SA — 2004的关键吸烟统计数据”已被图像覆盖。显示TC标志。 下面显示了文本剥离程序类的概念证明,该类将忽略图