Jaro Winkler SQL查询相关地址

本文关键字:地址 查询 Winkler SQL Jaro | 更新日期: 2023-09-27 18:19:38

我想向数据列表返回相关地址的列表,但在运行此代码时出错。非常感谢您的帮助。

我得到的错误是"无效列名vadress1"

C#

vaddress1 = txtchangeaddress1.Text;
string sConnectionString = System.Configuration.ConfigurationManager.AppSettings["sCon5"];
Connection = new OleDbConnection(sConnectionString);
Connection.Open();
SqlConnection con2 = new SqlConnection(connectionString);
String strSQL;
strSQL = "select distinct address1, dbo.fn_calcJW(vaddress1, address1) AS Expr1 FROM  address ORDER BY Expr1 DESC";  
OleDbDataReader dtReader;
objCmd = new OleDbCommand(strSQL, Connection);
dtReader = objCmd.ExecuteReader();

//*** BindData to DataList ***// 
DataList2.DataSource = dtReader;
DataList2.DataBind();

ASP

<div id="addressMatch">
    <center>
        <h2> Do one of these addresses fit?</h2>
    </center>
    <asp:DataList ID="DataList2" runat="server">
        <ItemTemplate> 
            <div style="margin-left: 0px; ">
                <table  width="100%" >
                    <tr>
                        <td align="left" >
                            <asp:TextBox id="txtAddressMatch" width="240px" runat="server"  Font-Underline="True" BorderStyle="None" ReadOnly="true" CssClass="txtborder" text='<%# DataBinder.Eval(Container.DataItem, "address1") %>'></asp:TextBox> 
                        </td> 
                    </tr>
                </table>
            </div>      
        </ItemTemplate>
    </asp:DataList> 
</div>

Jaro Winkler SQL查询相关地址

我想你会在这里得到错误:

dtReader = objCmd.ExecuteReader();

而且,我想这个错误是关于"vadress1"的。这是因为您需要将"vadress1"作为参数添加到SQL语句中。类似这样的东西:

strSQL = "select distinct address1, dbo.fn_calcJW(@vaddress1, address1) AS Expr1 FROM  address ORDER BY Expr1 DESC";
OleDbDataReader dtReader; 
objCmd = new OleDbCommand(strSQL, Connection);
objCmd.Parameters.Add("@vaddress1", SqlDbType.VarChar);
objCmd.Parameters["@vaddress1"].Value = vaddress1;

代码中错误的其他可能原因(这不是详尽的,但因为你没有提到任何具体的原因):

  • txtchangeaddress1.Text为空
  • System.Configuration.ConfigurationManager.AppSettings集合中找不到"sCon5"
  • 这条线上有许多可能的原因:Connection.Open();
    • 您的连接字符串格式不正确
    • 您的SQL Server不可用
    • 您没有访问SQL Server所需的权限
  • 存储过程"dbo.fn_calcJW"中的错误在dtReader = objCmd.ExecuteReader();行引发
    • 您实际上并没有向SQL语句添加参数。这是最有可能出现的问题,因为它会打乱对存储过程的调用
  • dtReader = objCmd.ExecuteReader();没有返回任何结果,因此在稍后的DataBind()调用过程中抛出错误

严肃地说,请在这里的帖子中包含比"运行此代码时出错"更多的信息。