2012-01-04 4 views
-3

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

Ошибка я получаю "Неверное имя столбца 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> 
+3

Какие конкретные ошибки вы получаете? – DaveE

+0

Легко с downvotes! –

+0

Пожалуйста, используйте какой-то инструмент отладки (visual studio, firebug и т. Д.), Чтобы определить, какая строка выбрасывает эту ошибку ***. Вы должны сделать * некоторые * здесь. – jadarnel27

ответ

2

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

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

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

+0

По-прежнему получать эту ошибку после добавления этого решения. Может ли проблема заключаться в том, что это функция, а не хранимая процедура?Я не уверен, что строка strSQL верна, но не уверена, как ее проверить. Функция отлично работает в sql-сервере. –

+0

Да. Im думает, что строка или, возможно, порядок событий? –

+0

да, это последнее, что я вызываю перед привязкой данных. –

Смежные вопросы