你可以使用以下代码来实现你的需求:

private void CheckListBoxItems()
{
    List<string> invalidItems = new List<string>();

    // 遍历listBox的每一个item
    foreach (string item in listBox1.Items)
    {
        // 检查item是否以"WS"开头并且长度为10(包括"WS")
        if (item.StartsWith("WS") && item.Length == 10)
        {
            // 获取单号
            string orderNumber = item.Substring(2);

            // 查询tf_sqd表的内容
            DataTable dt = QueryDataFromSQL(orderNumber);

            // 将查询结果展示在dataGridView2中
            dataGridView2.DataSource = dt;
        }
        else
        {
            // 非法的单据格式,添加到invalidItems列表中
            invalidItems.Add(item);
        }
    }

    // 删除非法的单据
    foreach (string invalidItem in invalidItems)
    {
        listBox1.Items.Remove(invalidItem);
    }

    // 显示单据错误提示
    if (invalidItems.Count > 0)
    {
        MessageBox.Show("单据格式错误!");
    }
}

private DataTable QueryDataFromSQL(string orderNumber)
{
    // 使用orderNumber查询tf_sqd表的内容,并返回一个DataTable
    // 在这里编写你的SQL查询语句和连接数据库的代码
    // ...
}

你需要将上述代码放置在你的窗体类中,并在需要进行检查的时候调用CheckListBoxItems方法。

QueryDataFromSQL方法中,你需要编写相应的SQL查询语句和连接数据库的代码来查询tf_sqd表的内容,并将查询结果返回一个DataTable对象。你可以使用ADO.NET来执行数据库查询操作。

请注意,上述代码仅提供了一个基本的实现示例,你可能需要根据你的具体需求进行适当的修改和调整

C# 先检查listbox里的item是否是WS+8位数字的单号 如果不是则显示单据错误的提示并删除非WS开头的item。如果是则开始通过item的每一个单号查询sql的tf_sqd表的内容并展示在datagridview2中

原文地址: https://www.cveoy.top/t/topic/ingE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录