我有一個程序,我一定要顯示如何從表值函數值在C#
- 事件描述(OpisDogodka)
- 位置(Lokacija)
時間(URA) 我的表值函數:
[dbo].[DobiDogodek]( @Ime nvarchar(100), @Datum date) RETURNS TABLE AS RETURN (SELECT OpisDogodka AS 'Opisdogodka',Lokacija, Ura FROM Dogodek WHERE [email protected] AND [email protected])
我的方法來連接到服務器:
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,但我需要將Date和Time分開。我做錯了什麼? 2017年6月4日(上午11:40 CET)更新: 看來我得到期望的結果
公開名單Dobi_dogodek(IME的字符串,字符串數據) { S =新名單(); 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#中使用存儲過程,用戶定義的函數和表值函數的新手。 – S4NNY1