【发布时间】:2017-02-11 16:00:23
【问题描述】:
首先,我无法访问数据库,我们的大学帐户出现问题,正在等待重置。我怎么有代码给我带来了一些问题,坦率地说,我不确定我是否以正确的方式解决了这个问题。
我只是想制作一个简单的测试程序来创建一个表,填充它然后读取它。
如果这不是足够的信息,我很抱歉我应该等待,但它让我在代码中得到这些小错误之前我什至可以编译明天测试。
这是创建表的代码,代码中似乎没有任何错误
static void buildTable()
{
try
{
string sqlBuild = "CREATE TABLE Item ("
+ "Item_ID VARCHAR2(1),"
+ "Item_Name VARCHAR2(16),"
+ "Price_Consumer VARCHAR(5)"
+ " ); ";
OracleCommand cmd = new OracleCommand(sqlBuild, con);
Connect();
cmd.ExecuteNonQuery();
Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
这是填充表格的代码,这是我遇到错误的地方。
static void populateTable()
{
string[,] items;
items = new string[5,3] { { "1", "Mozzarella", "9.99" }, { "2", "Peperoni", "12.99" }, { "3", "Meat Feast", "14.99" }, { "4", "Chicken Tikka", "12.99" }, { "5", "Spicy Vegetarian", "11.99" } };
try
{
OracleCommand cmd = new OracleCommand();
OracleDataReader r = cmd.ExecuteReader();
r.Read();
for (int i = 1; i < 6; i++)
{
for(int j = 1; j < 4; j++)
{
OracleCommand comd = new OracleCommand();
comd.Connection = con;
comd.CommandText = "insert into Item(Item_ID, Item_Name, Price_Consumer) values(" items[i, j].ToString() + ", " + items[i, j].ToString() + ", " + items[i, j].ToString() ");";
Connect();
comd.ExecuteNonQuery();
Close();
}
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
错误出现在 items[i,j] 上,它告诉我它需要一个“;”
最后,这是我接近 100% 的工作方式,就像我过去所做的那样,但我从未尝试过使用 c# 来创建或填充表格。
static void itemList()
{
string s = "\n";
try
{
Connect();
OracleCommand cmd = new OracleCommand(sql, con);
OracleDataReader r = cmd.ExecuteReader();
r.Read();
while (r.Read())
{
s = s + r["Item_ID"].ToString() + ", " + r["Item_Name"].ToString() + ", " + "£" +r["Price_Consumer"].ToString();
}
Close();
Console.WriteLine(s);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
这里是可能相关的附加代码
static void Connect()
{
con = new OracleConnection();
con.ConnectionString = "User Id=username;Password=password;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=port))(CONNECT_DATA=(SERVICE_NAME=SID)))";
con.Open();
Console.WriteLine("Connected to Oracle" + con.ServerVersion);
}
static void Close()
{
con.Close();
con.Dispose();
}
声明
static OracleConnection con;
static string sql = "select * from Item";
【问题讨论】:
-
在你的插入语句中你缺少'+'
-
感谢我查看了它,我意识到我哪里出错了。
-
很好,请接受我的回答:)
-
我投了赞成票,但史蒂夫发布了一个更完整的帖子,解决了我忽略的问题。