Jaro Winkler SQL-запрос для связанных адресов - PullRequest
0 голосов
/ 05 января 2012

Я хочу вернуть список связанных адресов в список данных, но я получаю ошибки при запуске этого кода. Любая помощь очень ценится.

Я получаю сообщение об ошибке «Неверное имя столбца vaddress1»

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>

1 Ответ

2 голосов
/ 05 января 2012

Я полагаю, вы получаете ошибку здесь:

dtReader = objCmd.ExecuteReader();

И я предполагаю, что ошибка связана с "vaddress1".Это потому, что вам нужно добавить «vaddress1» в качестве параметра в ваш оператор 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 пусто / пусто
  • «sCon5» не был найден в коллекции System.Configuration.ConfigurationManager.AppSettings 1014 *
  • В этой строке много возможных причин: Connection.Open();
    • Строка подключения неверна
    • Сервер SQL недоступен
    • У вас нет необходимых разрешений для доступа к SQL Server
  • Ошибки в хранимой процедуре "dbo.fn_calcJW" выбрасываются в строке dtReader = objCmd.ExecuteReader();
    • На самом деле вы не добавляете параметры в оператор SQL.Это наиболее вероятная проблема, так как она испортит этот вызов хранимой процедуры.
  • dtReader = objCmd.ExecuteReader(); результатов не вернул, поэтому при вызове DataBind() позже выдается ошибка

В серьезном примечании, пожалуйста, включите больше информации в свои сообщения здесь, чем "Я получаю ошибки при запуске этого кода".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...