Ajaxauto完成oracle数据库(c#)错误 [英] Ajaxauto complete with oracle database (c#) Error
问题描述
此代码正在执行,但当我在文本框中键入一个字母时,会弹出System.Data.DataRow
[系统。 Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List< string> GetName(string prefixText)
{
OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings [ConnectionString]。ToString());
//con.ConnectionString = ConfigurationManager.ConnectionStrings [dbconnection]。ToString();
con.Open();
string query =从vpro中选择名称,其名称如下:名称||''%'';
//Console.Write(从vpro中选择名称,其名称如下:名称||''%'');
OracleCommand cmd = new OracleCommand(query,con)
{CommandType = CommandType.Text};
cmd.Parameters.AddWithValue(:Name,prefixText) ;
OracleDataAdapter sda = new OracleDataAdapter(cmd);
sda.SelectCommand = cmd;
DataSet ds = new DataSet();
DataTable dt = new Data表();
sda.Fill(ds);
dt = ds.Tables [0];
List< string> name = new List< string>();
for(int i = 0; i< dt.Rows.Count; i ++)
{
name.Add(dt.Rows [0] .ToString());
}
返回姓名;
}
你得到的错误是什么?似乎是代码正确,但我有一个建议使用foreach而不是for循环。
dt.Rows [0] .ToString()---> dt.Rows [0] [i] .ToString()
已解决。
谢谢ThePhantomUpvoter 。
解决的代码
使用System;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.UI;
使用System。 Web.UI.WebControls;
使用System.Configuration;
使用System.Data.OracleClient;
使用System.Data;
公共部分类ajaxautocomplete:System.Web.UI.Page
{
protected void Page_Load(object sender,EventArgs e)
{
}
[System.Web.Services.WebMethodAttribute(),System.Web.Script.Services.ScriptMethodAttribute()]
public static string [] GetCountries(string prefixText)
{
OracleConnection con = new OracleConnection(Co nfigurationManager.ConnectionStrings [ConnectionString]。ToString());
con.Open();
string query =select name来自vpro,其中名称如下:名称||''%'';
//Console.Write(从vpro中选择名称,其名称如下:名称||''%'');
OracleCommand cmd = new OracleCommand(query,con){CommandType = CommandType.Text};
cmd.Parameters.AddWithValue(:Name,prefixText);
OracleDataAdapter sda = new OracleDataAdapter(cmd);
sda.SelectCommand = cmd;
DataSet ds = new DataSet();
DataTable dt = new DataTable();
sda.Fill(ds);
dt = ds.Tables [0];
string [] name = new string [dt.Rows.Count];
int i = 0;
foreach(dt.Rows中的DataRow dr)
{
name.SetValue(dr [name]。ToString(),i);
i ++;
}
返回姓名;
}
}
This code is Getting Executed but when i type a letter in textbox it pops System.Data.DataRow
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> GetName(string prefixText)
{
OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
//con.ConnectionString = ConfigurationManager.ConnectionStrings["dbconnection"].ToString();
con.Open();
string query = "select name from vpro where name like :Name||''%''";
//Console.Write("select name from vpro where name like :Name||''%''");
OracleCommand cmd = new OracleCommand(query, con)
{ CommandType = CommandType.Text };
cmd.Parameters.AddWithValue(":Name", prefixText);
OracleDataAdapter sda = new OracleDataAdapter(cmd);
sda.SelectCommand = cmd;
DataSet ds = new DataSet();
DataTable dt = new DataTable();
sda.Fill(ds);
dt = ds.Tables[0];
List<string> name = new List<string>();
for (int i = 0; i < dt.Rows.Count; i++)
{
name.Add(dt.Rows[0].ToString());
}
return name;
}
What is the error you getting ? seems to be code correct but I have one suggestion use foreach instead of for loop.
dt.Rows[0].ToString() ---> dt.Rows[0][i].ToString()
Solved.
Thank you ThePhantomUpvoter.
Solved Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.OracleClient;
using System.Data;
public partial class ajaxautocomplete : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
public static string[] GetCountries(string prefixText)
{
OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
con.Open();
string query = "select name from vpro where name like :Name||''%''";
//Console.Write("select name from vpro where name like :Name||''%''");
OracleCommand cmd = new OracleCommand(query, con) { CommandType = CommandType.Text };
cmd.Parameters.AddWithValue(":Name", prefixText);
OracleDataAdapter sda = new OracleDataAdapter(cmd);
sda.SelectCommand = cmd;
DataSet ds = new DataSet();
DataTable dt = new DataTable();
sda.Fill(ds);
dt = ds.Tables[0];
string[] name = new string[dt.Rows.Count];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
name.SetValue(dr["name"].ToString(), i);
i++;
}
return name;
}
}
这篇关于Ajaxauto完成oracle数据库(c#)错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!