【发布时间】:2017-11-05 01:08:29
【问题描述】:
我有一个程序需要显示
- 事件描述 (OpisDogodka)
- 位置(Lokacija)
-
时间(ura) 我的表值函数:
[dbo].[DobiDogodek]( @Ime nvarchar(100), @Datum date) RETURNS TABLE AS RETURN (SELECT OpisDogodka AS 'Opisdogodka',Lokacija, Ura FROM Dogodek WHERE Ime=@Ime AND Datum=@Datum)我连接服务器的方法:
public string Dobi_dogodek(string ime,string datum) { string a=""; cmd = new SqlCommand("SELECT * FROM dbo.DobiDogodek(@Ime,@Datum)",povezava); //povezava = connectio and it succeeds to connect to the server. cmd.CommandType = CommandType.Text; cmd.Parameters.AddWithValue("@Ime", ime); cmd.Parameters.AddWithValue("@Datum", datum); //how to pass date only? try { SqlDataReader Reader = cmd.ExecuteReader(); while(Reader.Read()) { a = Reader.GetString(0)+" "+Reader.GetString(1)+" "+Reader.GetString(3).ToString(); // get what? } Uspeh = true; } catch (Exception e) { ex = e; } finally { povezava.Close(); } return a; }我也尝试使用 Datatable 和 datarow。我也不确定如何使用 Date。我知道如何使用 DateTime,但我需要将日期和时间分开。我做错了什么?
2017 年 4 月 6 日(欧洲中部时间上午 11 点 40 分)更新: 看来我得到了想要的结果public List<string> Dobi_dogodek(string ime,string datum) { s = new List<string>(); cmd = new SqlCommand("SELECT * FROM dbo.DobiDogodek(@Ime,@Datum)",povezava); cmd.CommandType = CommandType.Text; cmd.Parameters.AddWithValue("@Ime", ime); cmd.Parameters.AddWithValue("@Datum", Convert.ToDateTime(datum)); dt = new DataTable(); da = new SqlDataAdapter(cmd); da.Fill(dt); try { foreach (DataRow dr in dt.Rows) { s.Add(dr["Opis dogodka"].ToString() + "\\" + dr["Lokacija"].ToString() + "\\" + dr["Ura"].ToString()); } Uspeh = true; } catch (Exception e) { ex = e; } finally { povezava.Close(); } return s; }现在我只需要根据我的要求拆分字符串,但是更好(不一定是简单)的方法吗?
【问题讨论】:
标签: c# sql-server visual-studio tsql