Ajaxauto完成oracle数据库(c#)错误 [英] Ajaxauto complete with oracle database (c#) Error

查看:74
本文介绍了Ajaxauto完成oracle数据库(c#)错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此代码正在执行,但当我在文本框中键入一个字母时,会弹出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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆